Hello!
2015-07-28 14:19 GMT+08:00 pengzhixi68:
> 章大大 可能我的业务场景要求我不能在
> init_worker_by_lua里面创建timer,我的业务场景大概是这样的,客户通过post以及uri中的op和context参数上传操作类型和任务列表,比如操作是publish
> 而任务列表就是一组url和对应的路径,这个操作要求我们链接这组url的服务器下载文件然后放到本地的文件系统中对应的文件路径。当客户上传任务,我们接收之后才需要定时向他们提供的另外一个url反馈我们处理的状态。按照大大提供的思路,那是不是接收任务之后我就可以用ngx.timer.at创建定时任务,在这个定时任务里面链接客户提供的url以及反馈任务处理状态呢?
>
我的玩法可以用于你这个场景。你可以通过一个或一组共享的 Lua table 来作为你的任务队列。在 init_worker_by_lua
中创建的 worker 唯一的 timer 序列可以根据任务队列来执行任务,如果队列为空,则什么也不做。不同的 URL
可以共享一个或一组任务队列。你的玩法容易导致定时器的数量爆炸,其实不同类型的任务可以通过队列共享同一个 timer.
Regards,
-agentzh