我要做的事情有点复杂。使用PHP和计时器启动和终止后台python脚本
我有一个python脚本,我想从PHP运行它,但在后台。我曾经在某处看到,为了在后台运行一个python脚本,我必须使用PHP命令exec(script.py)
来运行,而不用等待一个回报:至今没有问题。
第一个问题:
我必须停止与其他PHP命令这个循环脚本,如何做到这一点?
第二个问题:
我要实现服务器端的计时器,谁在结束的时候停止脚本。
我发现这个代码:
<?php
$timer = 60*5; // seconds
$timestamp_file = 'end_timestamp.txt';
if(!file_exists($timestamp_file))
{
file_put_contents($timestamp_file, time()+$timer);
}
$end_timestamp = file_get_contents($timestamp_file);
$current_timestamp = time();
$difference = $end_timestamp - $current_timestamp;
if($difference <= 0)
{
echo 'time is up, BOOOOOOM';
// execute your function here
// reset timer by writing new timestamp into file
file_put_contents($timestamp_file, time()+$timer);
}
else
{
echo $difference.'s left...';
}
?>
从this答案。
然后,有一种方法可以在MySQL数据库中实现它? (与脚本停止的集成不是问题)
https://secure.php.net/manual/en/function.exec.php#89716 使用它来获取进程ID,将其存储在文件或数据库中,然后杀死具有该进程的进程ID稍后。 请记住,无论小,过程可能已经停止,并且另一个过程最终使用该ID代替(这将意味着你正在杀死一个不同的过程) – xorinzor