现代化PHP
PHP发展了这么久,其实已经有了很大的改进,比如PHP5OOP特性的完善、PHP7的性能提高、Swoole生态的出现,让PHP能做的事越来越多,越做越好。
在当今环境中,我们可以使用SWOOLE常驻内存的特性完成很多事,
这里推荐一下EasySwoole这款基于Swoole环境的框架。
关于定时任务在EasySwoole框架中的文档地址点这里EasySwoole Crontab 定时器
常驻内存的程序,在服务器上后台稳定运行,
EasySwoole中提供了丰富的组件,比如传统PHPFPM环境很难解决的Mysql数据库连接池、协程Redis客户端、协程Http客户端、芒果DB客户端等等
还有我们这个主题有的一个定时任务的模块,下面看一小段demo代码
首先在主环境事件代码中开启定时任务
public static function mainServerCreate(EventRegister $register)
{
// 开始一个定时任务计划
Crontab::getInstance()->addTask(TaskOne::class);
}
定时任务的配置和内容
namespace App\Crontab;
use EasySwoole\EasySwoole\Crontab\AbstractCronTask;
class TaskOne extends AbstractCronTask
{
public static function getRule(): string
{
// TODO: Implement getRule() method.
// 定时周期 (每小时)
return '@hourly';
}
public static function getTaskName(): string
{
// TODO: Implement getTaskName() method.
// 定时任务名称
return 'taskOne';
}
static function run(\swoole_server $server, int $taskId, int $fromWorkerId,$flags=null)
{
// 定时任务处理逻辑
// 我们在这里执行拉取文件、对比处理、保存文件的逻辑就好了
var_dump('run once per hour');
}
}
其他问题
解决了定时执行的问题,那么下载文件和保存文件,我觉得应该都不会是很大的问题
总结
以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作具有一定的参考学习价值,谢谢大家对黑区网络的支持。
