2015-04-01 37 views
0

這裏的想法 - 有一個網站,我想刮。它每10分鐘更新一次,但有時會不同步。重要的是,我所刮的信息就在它更新之前。每次我查看網站時,我都可以抓取剩餘時間,直到下次更新。cron作業之間的可變時間(或類似的實現)

有沒有辦法讓一個cron作業 - 在每次迭代之後 - 我可以專門設置等待時間,然後再根據時間(t)的某個變量運行時間(t + 1)迭代?

我不是特別熟悉cron作業 - 我目前超級粗糙的實現只是使用-sleep-。不理想。

回答

0

我遇到了同樣的問題,並在抓取網站的程序中實施基本檢查。 我只是讓crontab調用程序,程序執行檢查。 如果數據已經存在,程序就會退出。 它浪費了一點處理資源,但被證明是最可靠的解決方案。

項在crontab中:

*/10 * * * * cd /var/www/vhosts/website/scripts && /usr/bin/python scraper.py 

您可以進行間隔時間短,使適合在網站上更新的窗口。

*/5 * * * * cd /var/www/vhosts/website/scripts && /usr/bin/python scraper.py 

*/5每5分鐘執行一次腳本,因此您不必「睡眠」程序。

我建議不要用程序/腳本來操作crontab。

0

您可以使用'at'命令爲下次需要運行時設置新作業。

所以,如果你刮告訴你下一次更新是在7分鐘內,你可以設定「在」命令來運行「現在+ 6分鐘

+0

你能給我提供更多的信息?我在'at'找不到任何文檔。你的意思是用程序腳本編輯crontab嗎? – Craig 2015-04-01 14:14:39

+0

http://www.computerhope.com/unix/uat.htm – 2015-04-01 14:30:28