最近因为项目需要,所以找了一下关与代码延时执行的问题.

在网上找的大部分的资料都是关于定时任务.这个很好弄,只需要安装一个gem包就完全可以做了.但是,我需要的是在程序接收到这个消息的时候延时5s或者10s发送.并且不妨碍整个程序其余的功能.通过朋友的提示 我在rubygem.org这里找到了想要的gem.

gem"rufus-scheduler"这个包就完全可以实现这个功能.下面看一下用法.首先安装这个gem.

gem"rufus-scheduler"然后,

bundleinstall可以用了.就这么简单.具体的代码可以这么写.

defsend_smsrequire'rufus/scheduler'user_list_id=params[:users_send_list_id]sms_channel_id=params[:send_sms_channel_id]sms_text=params[:send_contents_value]sms_text=sms_text.split("#")sendSmsTask(user_list_id,sms_channel_id,sms_text[0],part)#定时前调用的方法#启动定时器scheduler=Rufus::Scheduler.start_newscheduler.in'30s'dosendSmsTask(user_list_id,sms_channel_id,sms_text[1],part)#需要调用的方法endend看完了,赶快去试试吧.(欢迎各位提出更好的方法.大家一起讨论.)