我想在N
天或小时之后运行/调用一个函数,这个时间是可以更改的,我无法设置CRON
作业。
例如:
one(1)
one(2)
one(24)
function one($hour)
{
call two(); function after $hour
}
function two()
{
//do something
}
有没有图书馆可以做到这一点?
答案 0 :(得分:0)
在PHP脚本的顶部添加set_time_limit(0)以覆盖php.ini最大执行时间限制。
<?php
set_time_limit(0);
# Define your frequency
$days = 1;
$hours = 1;
$minutes = 1;
$seconds = 1;
# Convert inputs into seconds
$frequencySeconds = (
($days * 24 * 60 * 60) +
($hours * 60 * 60) +
($minutes * 60) +
($seconds)
);
$startTime = microtime(1);
while(1) {
# Get current timestamp
$timeNow = microtime(1);
# Find out how much time elapsed
$elapsedTime = $timeNow-$startTime;
# Check that time has surpassed frequency
if( $elapsedTime >= $frequencySeconds) {
/*
insert your main code here
*/
# Update new start time
$startTime += $frequencySeconds;
}
}
?>
但是,请记住,由于浏览器HTTP超时和/或httpd.conf文件中定义的Apache服务器最大执行时间,脚本可能会结束。
答案 1 :(得分:0)
请你一份工作队列,这比cron工作更有效率。我已经将它实现为PHP codeigniter项目并已在生产中运行。
以下是实施的链接
https://lornajane.net/posts/2014/working-with-php-and-beanstalkd