使用PHP/Python在特定时间调度任务,无需crontab

2 投票
2 回答
835 浏览
提问于 2025-04-16 21:19

我有一些不规律的工作要做(频繁而且很多),所以我不能使用定时任务(crontab)。

比如说:

  • 在2012年7月22日上午10:20发送一封邮件
  • 今晚11点发布一篇文章
  • 明天上午9:50运行一个脚本。

我发现了Linux命令at,但是管理起来不太方便。另外,我还查了一些消息队列(比如zeromq)和gearman,它们也不能处理定时或延迟的工作。

还有其他解决方案吗?

2 个回答

0

很遗憾,你只能选择用定时任务(cron)或者手动管理休眠状态。

不过,如果你在使用Django框架的话,这个问题已经有现成的解决方案了,你可以直接使用这个工具

0

那你觉得 APScheduler 呢?

import time
from datetime import datetime
from apscheduler.scheduler import Scheduler

# Schedule my_job for year, month, day, hour (out of 24), minute.  Then wait.
sched = Scheduler()
sched.start()
def my_job(text):  print text
job = sched.add_date_job(my_job, datetime(2011, 7, 11, 22, 04), ['hello'])
while True:
  print datetime.now()
  time.sleep(1)

撰写回答