yzc577亚洲城娱乐如何怎样做静态定时任务?

( yzc577亚洲城娱乐 )

做一个定时任务处理数据,每次处理10个,假如处理的太多就会呈现题目
怎样做静态定时任务,盘诘待处理数据条数,假如大于10个,定时下一分钟实行,顺次循环

过去用redis+python搞过类似的东东,这个思路redis+PHP也可以做。真实很复杂:

  1. 起主要有个redis效力器

  2. 假定一个任务行列步队就叫job_queue,范例运用list

  3. 起一个PHP脚本定时往里面加任务,比如$redis->lpush('job_queue', "xxx"); ,数据发起序列化为JSON字符串

  4. 起10个PHP脚本来实行任务,可以采取会壅闭blpop来取任务并实行:dealYourJob($redis->blpop('job_queue')); — 留意反序列化数据

O了

至于【3】中的怎样定时,既然你是用linux,发起直接用零碎的crontab即可。
【4】中的脚本想并行多少个随时都可以添加或添加。

除了redis外,MySQL也可以用来搞这个行列步队,便是SQL语句写起来费事些。

redis本身是单线程的,lpushblpop都能保证原子性,比用MySQL要省心。

sleep等待?

求大神告知怎样做或指明其他第三方

页面一加载就触发一个js办法,这个办法里面用ajax央求处理的那个背景办法,再用js定时器http://jun1986.iteye.com/blog…这是定时器的用法

假如单纯用PHP做,只能说PHP本身不擅长做这种事。不像JAVA在假造机里面开多几个线程就能处理。
假如没有打仗过方案任务,可以实行一下,linux的crontab。
别的要是根据差别的前往数量来决议差别的操纵间隔,可以用方案任务+缓存来完成。

盼望对你有帮忙!

用linux的crontab

0.先看看下面的链接

linux定时运转下令脚本——crontab

1.vi /etc/crontab

*/1 * * * * root php yourPhpFile.php 

2.每一分钟yourPhpFile.php脚本就会去盘诘并处理你的任务

总结:此处的crontab任务每一分钟实行一次,只是提供下大约头脑以是不够高效,题主可以摆设和设置出更为公道的定时任务

盼望对你有所帮忙

你可以在次序里面设计好对应的规矩逻辑。然后经过crontab下令实行。参考

(看完/读完)这篇文章有何感想! yzc577亚洲城娱乐的分享…

发表评论

电子邮件地址不会被公开。 必填项已用*标注