Debian上的调度器

Debian上的调度器,debian,scheduled-tasks,web2py,Debian,Scheduled Tasks,Web2py,beaglebone上的debian中不存在Upstart,我不想弄乱它。开发了一个脚本,其中使用chkconfig将服务添加到启动中。debian中也不存在chkconfig。 我试图修改脚本并使用updaterc.d,但是所有的尝试都失败了。 我最终想做的是运行定期任务,欢迎并感谢任何建议。我知道芹菜,但我发现马西莫关于调度器的论点很有说服力,所以想用它。顺便问一下,web2py-cron的主要缺点是什么?我应该尝试使用它吗?如果您想运行简单的定期后台任务,我建议使用web2py的“自制任务

beaglebone上的debian中不存在Upstart,我不想弄乱它。开发了一个脚本,其中使用chkconfig将服务添加到启动中。debian中也不存在chkconfig。 我试图修改脚本并使用updaterc.d,但是所有的尝试都失败了。
我最终想做的是运行定期任务,欢迎并感谢任何建议。我知道芹菜,但我发现马西莫关于调度器的论点很有说服力,所以想用它。顺便问一下,web2py-cron的主要缺点是什么?我应该尝试使用它吗?

如果您想运行简单的定期后台任务,我建议使用web2py的“自制任务队列”。在后台运行时,使用以下终端命令将允许任何python脚本访问应用程序的模型(您可以使用cron来安排此命令在启动时运行):

您的自定义脚本(通常保存在应用程序的/private文件夹中)可能如下所示:

## in file /myapp/private/mail_queue.py
import time
while True:
    rows = db(db.queue.status=='pending').select()
    for row in rows:
        if mail.send(to=row.email,
            subject=row.subject,
            message=row.message):
            row.update_record(status='sent')
        else:
            row.update_record(status='failed')
        db.commit()
    time.sleep(60) # check every minute

这是web2py文档中的一个脚本示例,它检查数据库中的挂起消息(每60秒一次),并发送电子邮件。注意,您的脚本应该是一个周期性的while循环,与控制器不同,您必须在对db进行更改后使用db.commit()。

您可以使用此
apt get install gnome schedule

我认为您的问题更适合,因为您没有任何编码问题(至少您没有显示失败的代码)。web2py-cron的缺点也应该是一个单独的问题(如果有的话,因为答案可能是基于观点的)。
## in file /myapp/private/mail_queue.py
import time
while True:
    rows = db(db.queue.status=='pending').select()
    for row in rows:
        if mail.send(to=row.email,
            subject=row.subject,
            message=row.message):
            row.update_record(status='sent')
        else:
            row.update_record(status='failed')
        db.commit()
    time.sleep(60) # check every minute