使用PHP或Python的Cron Job

时间:2013-08-24 05:37:49

标签: php python cron

我需要从wsdl获取数据并定期存储在数据库中的cron作业。如何在单例中实现它以确保在最新结束之前没有创建新实例?

我使用文件存储是否运行cron作业,但我认为应该存在更好的方法。在java中我们可以运行Jar作为守护进程,因此它可以将控制器设置为单例并且永远不会被杀死(如果被杀死,则为新的实例将创建)。如何用PHP或Python中的out文件实现它?

1 个答案:

答案 0 :(得分:2)

如果你不喜欢pid文件锁,你可以使用semaphores,即使这是一种常见做法。另外,我建议使用flock/fcntl而不是pid锁文件。我认为这对你来说非常好。

至于cron作业中的bash锁文件实践,你可以在这里看一下好的现有做法:

#!/bin/sh

lockfile="/tmp/cron_rsync.lock"
if [ -z "$flock" ] ; then
  lockopts="-w 0 $lockfile"
  exec env flock=1 flock $lockopts $0 "$@"
fi