2定时任务脚本_PHP协程框架对任务(Task)的革新

服务器在,需要大数据运算,数据归整,数据结算时,一般会用到任务。PHP由于是单线程语言,以往的任务执行都是依靠外部实现。

6f29c57f2804076db6339662b59088cd.png

最常见的任务有两种,一种是Linux Crontab 定时任务,普遍用于linux服务器中。一种是Windows定时任务。常用于Windows。还有就是宝塔等平台的使用python去实现定时任务。

下面让我们逐一介绍一下:

1、Linux Crontab 定时任务,基于Linux内置的cron进程实现,cron搭配shell脚本,复杂的指令也没有问题。使用 Linux Crontab 定时任务,你需要学会使用crontab的命令,然后需要找到你的程序入口或者去编写shell脚本。(注意这里其实是可以传递参数的,但是这个传参数不太友好。)

2、Windows定时任务,任务基于Windows定时任务。定时任务需要指向shell脚本/应用程序。使用的时候会有延迟,并且由于Windows服务器稳定性问题shell脚本有时会无法正常执行。安全性也不高。毕竟Windows服务器本身安全级别不高,也比较容易中毒。

3、宝塔等三方平台。他们是使用自己的程序封装的任务模块。使用起来很方便。但是有时候会出现比较奇怪的问题。比如安装之后,无法使用。有些服务器系统不兼容等等。(本宝就遇到过。)

方法缺点:

1、并且使用复杂度高。

2、稳定性差。

3、无法跨平台。

随着Swoole的出现,PHP有了协程。然后PHP大佬们开发出了协程框架。

PHP协程框架程序普遍都注册在内存中。Task任务都注册在系统服务中。这样就使得我们可以像编写自己的代码一样去注册不同的任务。并且可以方便的监控到任务执行结果,任务执行状态。不管是从实现复杂度和稳定性上都有很大提升。随着swoole的发展,协程框架必将实现跨平台使用。让所有的PHPer收益。(让我们能更专注于PHP代码。减少学习命令,脚本的时间。)

PHP协程框架的优点:

1、复杂度低。

2、程序执行,便于监控

3、依靠程序稳定性良好

真的很感谢协程框架的出现,协程不仅仅给PHP带来性能的提升,也给我们PHP开发者带来新的动力。让我们变得更开心。PHP是最好的语言。(欢迎PHP关注小鸟的。和小鸟一起成长。)

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
taskPHP taskPHP基于php开发的定时计划任务框架,利用多进程实现任务的分配和运行,利用内存共享实现进程间通信,支持多线程模式需要安装pthreads扩展(可选),支持linux和windows。有较好的伸缩性、扩展性、健壮稳定性而被多家公司使用,同时也希望开源爱好者一起贡献。   框架概况 框架目录结构: taskPHP 根目录 |-- core 框架系统目录 | |-- lib 框架核心文件目录 | | |-- .... 众多的框架核心类库文件 | |-- guide.php 框架引导文件 | |-- distribute_listen.php 任务派发进程入口 | |-- worker_listen.php 任务执行进程入口 |-- docs 开发文档存放目录 |-- logs 日志目录 |-- tasks 用户任务目录 | |-- demo demo任务 | | |-- Lib demo任务的扩展目录 | | |-- demoTask.php demo任务类文件 | | |-- config.php demo任务配置文件 | | ... 更多任务 | |-- config.php 全局配置文件 |-- main.php 框架入口文件 |-- windows_single.cmd windows快速启动文件 框架说明 linux下子进程执行任务,修改脚本无需重启后台服务立即生效,windows下修改任务脚本后需重启后台脚本 但往系统添加执行不受影响。 框架支持多线程模式,需要安装pthreads扩展(可选)。 使用内存共享实现进程通信,堵塞式消息队列,整个框架的运行无需第三方扩展。 任务派发及具体任务执行不在同个进程[distribute_listen.php]和[worker_listen.php],windows和linux下启用入口文件[main.php],windows下可运行[windows_single.cmd]快速启动。 执行时间语法跟crontab类似,且支持秒设置。 添加任务简单,只需继承Task基类,实现任务入口run方法。 环境要求 php版本>= 5.5 开启shmop 注意事项 由于任务存在派发时间,所以任务运行的时间可能会有1-2秒的误差。 windows下执行任务在循环里,编写任务有问题或调用exit将导致后台脚本停止,linux下无此问题。 建议生产部署在linux下运行多进程模式,因为运行在多线程模式运行一段时间后报错,pthreads has detected that the core\lib\Pthread could not be started, the system lacks the necessary resources or the system-imposed limit would be exceeded in xxx 文档列表 -->数据库类使用教程 支持(Mysql,Mongo,Oracle,Pgsql,Sqlsrv,Sqllite) -->windows下安装php多线程扩展pthreads教程 -->工具类Utils使用说明 -->http请求客户端类Client使用说明 使用说明 时间配置格式说明: * * * * * * * //格式 :秒 分 时 天 月 年 周 10 * * * * * * //表示每一分钟的第10秒运行 /10 * * * * * * //表示每10秒运行 /1 * 15,16 * * * * //表示 每天的15点,16点的每一秒运行 系统命令说明: main.php [start] 启动 可不带参数 main.php close 结束 main.php reload 重新加载任务 main.php delete demo 删除任务 main.php select 查看任务列表 main.php exec demo 运行任务 主要用于任务开发中调试单个任务 全局配置文件规范 标签:taskphp  计划任务

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值