如何通过cron一次运行一个PHP脚本?

时间:2016-01-09 12:52:46

标签: php cron

我有一个PHP脚本,我每分钟通过cron调用。 但是,当第一个电话仍在加载或正在进行时,我不希望它再次运行?

我尝试过使用MYSQL,但有时我的问题是,脚本没有完成加载,因此无法更新脚本完成的MYSQL。它会卡在装载中。

谢谢

1 个答案:

答案 0 :(得分:0)

在开始新文件之前,您必须使用锁文件或检查它是否已在运行。

请参阅How to prevent PHP script running more than once?

我已经采取了解决方案并进行了一些修改:

#!/bin/bash

#change to the name of php-file
SCRIPT='my-php-script.php'

#get running processes containing php-file
PIDS=$(ps aux | grep "$SCRIPT" | grep -v grep)

if [ -z "$PIDS" ]; then
  echo "Starting $SCRIPT ..."
  #change path to script to its real path
  /usr/bin/env php "/path/to/script/$SCRIPT" >> "/var/log/$SCRIPT.log" &
else
  echo "$SCRIPT already running."
fi

您应该首先尝试在命令行上运行它以查看它是否有效,然后将其添加到cron。根据系统的不同,它可能会有一些不同的路径,而且找不到正确运行所需的部件。