2

我是 Django、Python 和 Web 开发的新手,我正在尝试将 RSS 阅读器作为一个学习项目。现在,我需要帮助来实施定期检查所有频道以获取新内容的部分(比如每 15 分钟一次)。我需要一个 cron 工作来做这件事,而自定义管理命令是解决这个问题的方法,我知道很多。但我正在努力弄清楚如何实现它。这个链接是大多数人在 SO 上推荐的,但我觉得它没有多大帮助,例如,我没有解释 X 时间部分的调度。

有人可以通过代码解释如何每 15 分钟检查一次新内容的频道。提前致谢。

4

2 回答 2

2

“每 15 分钟”位实际上是最简单的。一旦你编写了检查一次的命令,你就可以设置 cron 每 15 分钟执行一次命令。

本文简要概述了 cron 以及如何设置它。

运行 cron 时要记住的事项:

  1. Cron 进程在它们自己的 shell(通常是/bin/sh)下运行,因此无法访问您的所有自定义项(例如您添加到PATH.
  2. 这也意味着您需要提供您需要运行的任何可执行文件的完整路径。例如,不要键入python,而是/usr/bin/python,或者任何适用于您的系统的内容。
  3. cron 任务的结果通常会通过电子邮件发送到您的系统用户帐户。您可以通过安装邮件阅读器来查看这些消息。mutt是我最喜欢的控制台电子邮件阅读器。MAILTO如果要将 cron 结果重定向到电子邮件,可以在 cron 文件中设置变量。
  4. 另外,请记住,像命令这样的常见bashismsource在 cron 中不起作用。

编写好管理命令后;只需将其添加到您自己的 crontab 文件中。该文件列出了系统范围的 cron 进程将执行的所有命令。

要编辑您的 crontab 文件,请crontab -e从控制台键入。

文件中不是注释的每一行都是一个条目。条目以频率开头,然后是要运行的命令。这是一般格式:

*    *    *    *    *  command to be executed
┬    ┬    ┬    ┬    ┬
│    │    │    │    │
│    │    │    │    │
│    │    │    │    └───── day of week (0 - 7) (0 or 7 are Sunday, or use names)
│    │    │    └────────── month (1 - 12)
│    │    └─────────────── day of month (1 - 31)
│    └──────────────────── hour (0 - 23)
└───────────────────────── min (0 - 59)

*任何位置的星号都表示“全部”。

每 15 分钟运行一次:

0/15**** /usr/bin/python /home/myuser/project/manage.py foo
于 2013-01-13T07:19:52.003 回答
0

只是为了将来对此的参考,频率参数用空格分隔(也许它们在帖子中丢失了)。尝试各种组合的好地方是 www.dataphyx.com/cronsandbox/。

于 2013-01-22T05:32:01.993 回答