cron(或其衍生產品)是運行計劃編程任務的唯一方法嗎?例如:Cron是運行計劃任務的唯一方法嗎?
- 向客戶收取的信用卡3天前X
- 發送電子郵件的時間x
- 6小時執行XYZ命令每隔一小時
是否有良好的資源/書教如何以一種乾淨的方式實現這些功能(python,ruby(或ROR),python)?
我目前的髒方法是在CronTab中運行每分鐘的包裝腳本來檢查是否應該運行某些任務。我不太喜歡這個。我更喜歡一種能夠以編程方式實現計劃任務的方法。
cron(或其衍生產品)是運行計劃編程任務的唯一方法嗎?例如:Cron是運行計劃任務的唯一方法嗎?
是否有良好的資源/書教如何以一種乾淨的方式實現這些功能(python,ruby(或ROR),python)?
我目前的髒方法是在CronTab中運行每分鐘的包裝腳本來檢查是否應該運行某些任務。我不太喜歡這個。我更喜歡一種能夠以編程方式實現計劃任務的方法。
at
如果您想在未來的特定時間安排一次性工作,可能會更合適。
不,你CA使用Linux這樣的事情我們做
if (strtoupper(substr(php_uname(), 0, 3)) === 'WIN') {
// This is for Windows
$cmd = PHP_PATH . " " . PATH_CLASS . "/Cron/somecron.php";
pclose(popen("start /B ". $cmd, "r"));
unset($_SESSION['something']);
} else {
//This is for Linux
exec("php " . PATH_CLASS . "/Cron/somecron.php > /dev/null &");
unset($_SESSION['something']);
}
對於Python設置時間表的工作,你可以使用celery
例如執行命令每隔一小時會是這樣的:
from celery.task.schedules import crontab
from celery.decorators import periodic_task
@periodic_task(run_every=crontab(hour=3))
def every_three_hour():
print("This runs every three hour")
並從現在開始執行三個小時將看起來:
from datetime import datetime
YourTask.apply_async(args=[some, args, here], eta=datetime.now()+datetime.timedelta(hours=3))
我建議使用Ruby/ROR的delayed_job
,更多信息here。
非常易於安裝,也是最重要的 - 活躍的項目,這是選擇的武器大部分Rubiest的,我知道:)
如果你使用一個數據庫,它可能會支持'events' – 2013-05-09 12:02:46
回報率的寶石: https://github.com/jmettraux/rufus-scheduler – mccannf 2013-05-09 12:03:31
感謝您的建議。 Rufus調度程序有多強大? – user2223224 2013-05-09 12:08:33