javascript - php 如何实现用户自定义的定时任务
天蓬老师
天蓬老师 2017-04-10 15:58:46
[JavaScript讨论组]

现在遇到一个问题是:

 用户A登陆后台之后 设置一个定时任务 每天早上 9:00 执行,
 用户B登陆后台之后 设置一个定时任务 每天夜里 8:00 执行,
 用户C
 ...
 
 这种功能如何设计
 用户是web系统的用户,不是操作系统的用户。

 

天蓬老师
天蓬老师

欢迎选择我的课程,让我们一起见证您的进步~~

全部回复(6)
黄舟

用户设置定时任务后,后台逻辑将定时任务下发给crontab,使用crontab来定时执行用户的任务。

PHPz

https://github.com/osgochina/swoole-crontab

基于swoole的定时器程序,支持秒级处理.
异步多进程处理。
完全兼容crontab语法,且支持秒的配置
请使用swoole扩展1.7.9-stable及以上版本.Swoole

高洛峰

一般的做法是,用户设置定时任务后,后台将数据记入存储(这样用户取消只要用字段标记失效就可以了),用crontab或者守护进程做扫描,把满足条件的任务激活执行。

我看到你打了php标签,php可以使用pcntl扩展实现纯php定时器任务,目前php只支持以秒为单位的触发,不支持更小时间单位,不过对位定时任务而言基本足够~

巴扎黑

Windows下计划任务,Linux下crontab,php去调用

阿神

每一个web用户创建的所有定时任务的总和就是你的系统的所有定时任务,只不过定时的时间点不同而已,所以,你的核心点还是在创建定时任务上。

你可以先建立一个定时任务表,记录每一个定时任务的时间点,要执行的动作,对应的用户id等信息,再创建一个定时任务去不断的刷这个表,如果发现某条记录到了定时点,就执行对应的动作。

具体的一些定时任务的思路可以先看下这篇文章:http://segmentfault.com/a/1190000002955509

巴扎黑

可以将要执行的任务放入数据库然后在写一个后台程序去解析数据库的内容或者利用系统的计划任务来启动解释程序去执行
discuz也有计划任务,有兴趣可以去了解一下。 不过discuz 的是要用户触发入口才会执行的吧。

热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习
PHP中文网抖音号
发现有趣的

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号