请教下如何实现PHP定时任务功能?多谢!

起个昵称吧 发布于 2016/03/02 21:56
阅读 615
收藏 1
PHP
正在做一个应用,需要使用定时任务功能,因为定时任务可能需要实时的,但看了一下如果直接使用crontab实现的话,可能达到不效果。所以想请教一下各位的定时任务是如何实现的,多谢
加载中
0
山里的孩子
山里的孩子

set_time_limit(0);
ignore_user_abort(true);

while(sleep(1)) {
    //Blah blah blah
}

eechen
eechen
http://php.net/sleep 函数sleep成功时返回0,应该这样写吧: while(sleep(1)===0) {}
1
飞酒
飞酒
用php写个守护进程就可以了
0
netwinder
netwinder
crontab 都实现不了?  说说你的业务场景
netwinder
netwinder
回复 @起个昵称吧 : 秒级业务 考虑负载吗?
还没有名字
还没有名字
回复 @起个昵称吧 : 死循环sleep1秒钟
起个昵称吧
起个昵称吧
是这样的,我想做一个论坛还有业务系统,想实现可以针对秒级的定时任务框架,如果用crontab的话,也只能最多一分钟执行几次的,达不到秒级的效果。
0
碳素云信息技术
碳素云信息技术
那你挂个PHP脚本或者Shell脚本就可以了。
0
你若安好
你若安好
package main

import "fmt"
import "time"
import "io/ioutil"
import "net/http"

func main() {	
	fmt.Println("time go")
	timer2 := time.NewTicker(2 * time.Second)
	 for {
	  select {
	  case <-timer2.C:
	    fmt.Println("time to");
	    Get();
	  }
	 }
}

var client = &http.Client{}



func Get() {

 //向服务端发送get请求

 request, _ := http.NewRequest("GET", "定时请求URL", nil)

 response, _ := client.Do(request)



 defer response.Body.Close()



 if response.StatusCode == 200 {

 str, _ := ioutil.ReadAll(response.Body)

 bodystr := string(str)

 fmt.Println(bodystr)

 }

}



   用go写个定时访问URL的定时器 编译成服务器版本 so easy
0
inuxor
inuxor
用crontab可以实现秒级任务,脏招
crontab -e 
* * * * * /path/your_script
* * * * * sleep 1; /path/your_script 
* * * * * sleep 2; /path/your_script 
* * * * * sleep 3; /path/your_script 
.
.
.
* * * * * sleep 59; /path/your_script




voov
voov
...
0
风吹响的号角
风吹响的号角
守护进程,php死循环
0
可可西里熊
其实如果可以用js的话,用setinterval 可以
返回顶部
顶部