taskPHP

定时计划任务框架
授权协议 GPL
开发语言 PHP
所属分类 应用工具、 个人助理软件
软件类型 开源软件
地区 国产
投 递 者 鲁华灿
操作系统 跨平台
开源组织
适用人群 未知
 软件概览

taskPHP 基于原生态 php 开发的定时计划任务框架,利用多进程实现任务的分配和运行,利用原生态php内存共享实现进程间通信,支持 linux 和 windows。有较好的伸缩性、扩展性、健壮稳定性而被多家公司使用,同时也希望开源爱好者一起贡献。

框架概况

taskPHP                             根目录
|-- core                            框架系统目录
|   |-- lib                         框架核心文件目录
|   |   |-- ....                    众多的框架核心类库文件
|   |-- guide.php                   框架引导文件
|   |-- distribute_listen.php       任务派发进程入口
|   |-- worker_listen.php           任务执行进程入口
|-- logs                            日志目录
|-- tasks                           用户任务目录
|   |-- demo                        demo任务
|   |   |-- Lib                     demo任务的扩展目录
|   |   |-- demoTask.php            demo任务类文件
|   |   |-- config.php              demo任务配置文件
|   |   ...                         更多任务
|   |-- config.php                  全局配置文件
|-- main.php                        框架入口文件
|-- windows_single.cmd              windows快速启动文件

框架说明

  1. linux下子进程执行任务,修改脚本无需重启后台服务立即生效,windows下修改任务脚本后需重启后台脚本 但往系统添加执行不受影响

  2. 使用内存共享实现进程通信,堵塞式消息队列,整个框架的运行无需第三方扩展。

  3. 任务派发及具体任务执行不在同个进程[distribute_listen.php]和[worker_listen.php],windows和linux下启用入口文件[main.php],windows下可运行[windows_single.cmd]快速启动

  4. 执行时间语法跟crontab类似实现crontab的运行规则,并有辅助工具在Utils类,且支持秒设置.

  5. 添加任务简单,只需继承Task基类,实现任务入口run方法

注意事项

  1. 由于任务存在派发时间,所以任务运行的时间可能会有1-2秒的误差。

  2. windows下执行任务在循环里,编写任务有问题或调用exit将导致后台脚本停止,linux下无此问题。

使用说明

系统命令说明:

mian.php start  启动
mian.php close  结束
main.php  reload  重新加载任务
main.php  delete demo   删除任务
main.php  select  查看任务列表
 相关资料
  • 我已经使用java创建了特定于时区的计划任务事件。我的密码是贝娄。 但是问题是当调用这个方法时,它会很快运行这个任务。我需要每天12点在亚洲/科伦坡时区运行这项工作。那要怎么做?

  • 计划任务系统使用说明 新版计划任务为用户提供了以下功能 创建一个计划任务 修改一个计划任务 删除计划任务 查看一个namespace的所有计划任务 查看一个namespcae的某个计划任务详细内容 查看一个计划任务的执行状况 查看任务的日志 查看创建的计划任务列表和某个计划任务的详细信息。 点击计划任务v2,进入计划任务列表,在这里可以看到用户名下的所有计划任务,点击一个计划任务,可以看到该计划任

  • 亚马逊宣布了AWS Lambda(http://AWS.Amazon.com/Lambda/)。 产品说明包括: 计划任务 AWS Lambda函数可以由外部事件计时器触发,因此可以在定期计划的维护时间或非高峰时段运行函数。例如,您可以触发一个AWS Lambda函数,在非繁忙时间执行每晚的存档清理。 当我读到这篇文章时,我明白了我终于可以有一种方法来始终如一地完成“类似朋党”的任务。我想每天下午

  • > 我需要在执行前一个任务后以不同的延迟一个接一个地运行计划的任务。示例。有一个任务列表和延迟列表。 现在我需要运行task1通过100ms,task2在task1之后通过9ms,task3在task2之后通过22ms等等。 我正在使用javafx。任务可以使用一些UI更新方法,例如更改节点位置。这迫使我使用平台。runLater()方法,因为如果不这样做,则会出现异常“Not on FX app

  • 我已经创建了一个控制台应用程序,并尝试在任务计划程序中运行。当我通过单击可执行文件或使用快捷方式运行它时,它工作正常,但当我在任务调度程序中运行它时,我得到“PHLIP231 Prod的应用程序访问路径' C:\WINDOWS\DMBErrors '被拒绝。” 我已经在我的应用程序中搜索了此路径,甚至尝试手动将路径添加到我的计算机,但没有成功。我的应用程序构建了一个excel文件并将其写入相对于可

  • 我有一套使用spring框架用Java写的服务。一些服务有预定的任务(使用spring的< code>@Scheduled注释)来做一些内务处理(生成处理过的数据,数据清理等。).由于这些计划任务,我不能运行服务的多个实例,因为所有实例都选择相同的任务,并且多次执行,导致重复/损坏的数据。为了解决这个问题,我想在任务执行时进行检查,并且只允许在一个实例上执行。我该怎么做?这个问题有更好的解决方法吗

  • 我在context.xml文件中定义了一个Spring调度任务,它每分钟运行一次。该任务调用postgres存储过程。存储过程运行时可以持续一分钟以上。如果当前运行没有完成,spring框架会调用相同的调度程序吗?谢谢,

  • 是否可以通过以下注释在XML配置中实现Java中的时区设置? 我在XML定义中看不到任何其他属性,但也许有一个解决方案可以实现所需的目标。 示例配置: 当前的Spring依赖项: