Php Cron是运行计划任务的唯一方法吗?
cron(或其衍生物)是运行计划的编程任务的唯一方法吗?例如:Php Cron是运行计划任务的唯一方法吗?,php,python,ruby-on-rails,ruby,django,Php,Python,Ruby On Rails,Ruby,Django,cron(或其衍生物)是运行计划的编程任务的唯一方法吗?例如: 在X前3天向客户的信用卡收费 从时间x起6小时内发送电子邮件 每小时执行一次xyz命令 有没有好的资源/书籍可以教你如何以干净的方式实现这些特性(python、ruby(或ROR)、python) 我当前的脏方法是让CronTab中的包装器脚本每分钟运行一次,以检查是否应该运行某些任务。我真的不喜欢这个。我更喜欢一种可以通过编程实现预定任务的方法 如果您希望在将来的指定时间安排一次性作业,则可能更合适。不,您可以使用linux设置作
我当前的脏方法是让CronTab中的包装器脚本每分钟运行一次,以检查是否应该运行某些任务。我真的不喜欢这个。我更喜欢一种可以通过编程实现预定任务的方法 如果您希望在将来的指定时间安排一次性作业,则可能更合适。不,您可以使用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,您可以使用
例如,每小时执行一次命令如下:
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的
延迟作业
,更多信息
非常容易设置,而且最重要的是-活动项目,这是我所知道的大多数Rubeest的首选武器:)如果您使用的是数据库,它可能支持
事件
RoR gem:谢谢您的建议。Rufus调度程序有多强大?我想说,请查看和以查找任何投诉。需要注意的一件事是,如果RoR未运行,您的任务将不会运行……还有: