PHP计划任务,也称为cron job,是一种在后台自动履行的任务。它可以帮助您定期运行脚本、备份文件、发送电子邮件等任务。

php任务系统-php计划任务

要设置一个PHP计划任务,您需要使用cron命令。cron位于Linux和Unix系统的系统服务中,并允许您安排各种任务在特定的时间运行。要创建一个新的cron作业,您可以打开终端并输入以下命令

```bash

crontab -e

```

这将打开您的cron编辑器。在编辑器中,您可以添加新的行来定义您的任务。例如,如果您想在每天的10:30运行一个名为"my_script.php"的PHP脚本,您可以这样写

```bash

0 30 * * * /usr/bin/php /path/to/my_script.php

```

在这个例子中,"0 30 * * *"表示每天的10点30分(小时是24小时制)。"/usr/bin/php"指定要在哪一个目录下运行PHP脚本,最后的"/path/to/my_script.php"则是脚本的实际路径。

请注意,您需要有适当的权限才能修改cron配置文件。如果您没有权限,可以尝试用root用户登录并再次运行上述命令。

另外,确保您的脚本具有足够的权限访问所需的文件或数据库。如果您的脚本没法访问某个文件或数据库,您可能需要检查其权限或更改其访问控制列表(ACL)。

请记住定期检查您的cron作业,以确保它们按预期工作。您可使用以下命令查看所有现有的cron作业

```bash

crontab -l

```

如何实现PHP源码的计划任务 我有一php源码该如何使用

管理部署—上传包部署(也就是上传程序的压缩包)。

上传部署包进行部署,只能部署,只能部署war/zip包,包大小不能超过50M,如果是PHP程序,上传包的根目录下必须存在index.php文件。

php如何实现定时任务,php定时任务方法,最佳

php中定时计划任务的实现原理

当 PHP 脚本正常地运行 NORMAL 状态时,连接为有效。当远程客户端中断连接时,ABORTED 状态的标记将会被打开。远程客户端连接的中断通常是由用户点击 STOP 按钮导致的。当连接时间超过 PHP 的时限时,TIMEOUT 状态的标记将被打开。

示例代码

<php

ignore_user_abort(true);set_time_limit(0);

date_default_timezone_set('PRC'); // 切换到中国的时间

$run_time = strtotime('+1 day'); // 定时任务第一次执行的时间是明天的这个时候

$interval = 3600*12; // 每12个小时执行一次

if(!file_exists(dirname(__FILE__).'/cron-run')) exit(); // 在目录下存放一个cron-run文件,如果这个文件不存在,说明已经在执行过程中了,该任务就不能再激活,执行第二次,否则这个文件被多次访问的话,服务器就要崩溃掉了

do {

if(!file_exists(dirname(__FILE__).'/cron-switch')) break; // 如果不存在cron-switch这个文件,就停止执行,这是一个开关的作用

$gmt_time = microtime(true); // 当前的运行时间,精确到0.0001秒

$loop = isset($loop) && $loop$loop : $run_time - $gmt_time; // 这里处理是为了确定还要等多久才开始第一次执行任务,$loop就是要等多久才执行的时间间隔

$loop = $loop > 0$loop : 0;

if(!$loop) break; // 如果循环的间隔为零,则停止

sleep($loop);

// ...

// 执行某些代码

// ...

@unlink(dirname(__FILE__).'/cron-run'); // 这里就是通过删除cron-run来告诉程序,这个定时任务已经在执行过程中,不能再执行一个新的同样的任务

$loop = $interval;

} while(true);

PHP制作定时任务(也称计划任务)的方法,大概分为2种

现在基本所有的PHP框架,如ThinkPHP,Yii,Laravel等等;它们都是单入口的形式,也就是说所有的请求都集合到index.php中,然后再由框架核心来根据请求参数的不同来分配到不同的控制器当中。基于单入口的形式,那么就可以做基于行为(例如TP3.2)或者说基于事件的定时任务。

系统自动的定时任务,比如Linux的crontab,windows的计划任务等。

两中方法各有所长各有所短

基于事件这种利用的是框架本身提供的一些行为来实现,优点是不需要特殊配置,只要项目能跑起来,那么定时任务也能执行。缺点是灵活性比较差,必须要借助框架实现。

基于系统基于操作系统来实现,优点是灵活性很高,而且可控性也很好。缺点是需要特殊配置,专业要求性比较强。

具体要使用哪种方法,可以依据自己的能力和项目需要来选择。最后附上TP3.2的定时任务配置,这个只需要配置就可以,如果想查看具体实现原理,可以查看/ThinkPHP/Library/Behavior/CronRunBehavior.class.php

第一步/Application/Common/Conf目录下新建两个文件

分别如

/Application/Common/Conf/tags.php

/Application/Common/Conf/crons.php

1)新建tags.php,编辑内容如下

returnarray(

'app_end'=>array('Behavior

CronRunBehavior'),

);

2)新建crons.php,编辑内容如下:

returnarray(

'cron_1'=>array('myplan',1),

);

第二步/Application/目录下新建Cron文件夹,里面新建文件myplan.php文件

路径如/Application/Cron/myplan.php

编辑内容如下

echo11111;

查看是否运行成功,最简单的方法是查看/Application/Runtime/~crons.php,这个文件是否存在。

声明:本站所有文章,如无特殊说明或标注,均为本站原创发布。任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。