2012-03-07 108 views
-3

我有一個php web應用程序進行導入。我打開頁面點擊導入並關閉它。 它在將結果保存到數據庫之前進行各種檢查。cronjob啓動php web應用程序

現在我想每天自動做這個。怎麼樣?

cronjob只啓動php腳本,但我可以用它啓動一個應用程序嗎?

更具體的: 我有一個表示層,控制器和一個DAO。 對於cronjob,表示層是不相關的。

我實際需要啓動的是控制器中的一個功能。這個導入函數從amazon獲得一個s3桶列表,與數據庫中現有的條目進行交叉檢查,並使用DAO將新的條目保存到數據庫中。我還使用了2個其他對象。 所以提取代碼並將其放在腳本中確實是一個矯枉過正的問題。也因爲我有4個不同的進口。

與wget我不明白如何將右擊傳遞給cronjob。我在該頁面上有4個按鈕來啓動4個不同的導入。我使用的是JavaScript函數的onclick =「submitImport(‘importTranscripts’)」和形式:

<form name="form1" id="importForm" action="" method="POST" enctype="multipart/form-data"> 

怎樣的聯繫已經到什麼樣子的?

+0

爲什麼你需要啓動應用程序,如果一切都在PHP? – Reno 2012-03-07 07:41:56

+5

如果你想這樣做的話,你應該正確地抽象出從你的應用程序導出的代碼,並使它可以從命令行的php腳本中調用,這樣你可以避免在cron中運行時HTTP的開銷,但是這是一種最佳做法。 – ChrisR 2012-03-07 07:45:07

回答

1

在你的cron工作中使用wget。例如

wget -O- http://example.com/yourscript.php 
+0

更具體地說: – user1254065 2012-03-07 07:54:04

+0

當我有一個表單並希望在POST中傳遞參數時,鏈接的外觀如何? – user1254065 2012-03-07 08:50:33

+0

爲了到達該導入頁面,我必須通過登錄。 wget有可能嗎? – user1254065 2012-03-07 10:54:51