gpt4 book ai didi

php - 使用在特定时间后运行的参数设置 cron,然后使用 php 执行完成后删除该 cron 作业

转载 作者:塔克拉玛干 更新时间:2023-11-03 01:23:23 24 4
gpt4 key购买 nike

我正在研究 twilio api。我想在其中执行一个文件,该文件显示您的调用订阅在电话 session 期间还剩最后 2 分钟。

因此,我有剩余的用户时间可以说是 210 秒。我必须将当前电话 session 的 ConferenceSid 传递给 cron 文件一个参数。

此文件仅在电话 session 开始后的特定时间(例如 88 秒后)后执行。所以我必须设置在电话 session 开始 88 秒后运行的 cron,并在执行完成后删除动态创建的作业。

对于 cron 作业集,我使用以下 crontab 类。这是我正在尝试的代码。

$path = dirname(__FILE__);
$cron = $path . "/test.php ConferenceSid=".$_REQUEST['ConferenceSid'];
Crontab::addJob('*/1 * * * * php '.$cron);
Crontab::removeJob('*/1 * * * * php '.$cron);

我不知道如何传递参数以便文件在 88 秒后执行。

这是我的 Crontab 类,它是从另一个堆栈溢出答案中找到的。

class Crontab {

static private function stringToArray($jobs = '') {
$array = explode("\r\n", trim($jobs)); // trim() gets rid of the last \r\n
foreach ($array as $key => $item) {
if ($item == '') {
unset($array[$key]);
}
}
return $array;
}

static private function arrayToString($jobs = array()) {
$string = implode("\r\n", $jobs);
return $string;
}

static public function getJobs() {
$output = shell_exec('crontab -l');
return self::stringToArray($output);
}

static public function saveJobs($jobs = array()) {
$output = shell_exec('echo "' . self::arrayToString($jobs) . '" | crontab -');
return $output;
}

static public function doesJobExist($job = '') {
$jobs = self::getJobs();
if (in_array($job, $jobs)) {
return true;
} else {
return false;
}
}

static public function addJob($job = '') {
if (self::doesJobExist($job)) {
return false;
} else {
$jobs = self::getJobs();
$jobs[] = $job;
return self::saveJobs($jobs);
}
}

static public function removeJob($job = '') {
if (self::doesJobExist($job)) {
$jobs = self::getJobs();
unset($jobs[array_search($job, $jobs)]);
return self::saveJobs($jobs);
} else {
return false;
}
}
}

最佳答案

您可以放弃 cron 方法并让您的脚本像这样启动:

sleep($numberOfSeconds)

您只需要以不会阻塞主程序的方式调用脚本。参见 How can I run a program in the background (non blocking) with php?

关于php - 使用在特定时间后运行的参数设置 cron,然后使用 php 执行完成后删除该 cron 作业,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39543873/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com