创建定时任务 - Linux / Python

4 投票
4 回答
8293 浏览
提问于 2025-04-15 19:45

你好,我有一个需要运行的Django脚本。

我觉得可以通过bash命令来调用这些脚本。

问题是,这个脚本在运行一段时间后会导致内存泄漏,所以我想创建一个外部的定时任务,来定期调用这个Python脚本。这样,脚本就可以终止并重新启动,从而回收丢失的内存。


有没有人能给我一些建议?我对这个话题了解得不多,有点迷茫。

4 个回答

1

我觉得你可能会对这个链接感兴趣:http://code.google.com/p/django-cron/

这是一个可以在不同平台上使用的定时任务库,专门为Django框架设计的,它在Windows服务器上也能正常工作。

2

你有没有看过关于自定义管理命令的内容?它们的工作方式和其他从manage.py运行的命令一样,只不过你可以自己编写这些命令。

应用程序可以在manage.py中注册自己的操作。例如,你可能想为一个你要发布的Django应用添加一个manage.py的操作。

要做到这一点,只需在你的应用中添加一个management/commands目录。这个目录中的每个Python模块都会被自动发现,并注册为一个可以在运行manage.py时执行的命令。

7

假设你有一个可执行文件,比如说 /home/bin/foobar,它会重新启动一个脚本。如果你想每10分钟运行一次这个脚本,你需要在定时任务中添加以下内容:

*/10 * * * *  /home/bin/foobar

这段内容的意思是每小时、每天在每10分钟的整点运行一次。

如果你把这个定时任务(以及你想要运行的其他定时任务)保存为 /home/bin/mycrontab,那么只需要输入 crontab /home/bin/mycrontab,系统就会自动处理剩下的事情(这个脚本会以你的用户身份运行)。

如果你想查看当前用户下已经安排好的定时任务,可以输入 crontab -l

撰写回答