我要做的事情有點複雜。使用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