ruby – Delayed_job:如何使用handle_asynchronously处理函数?

前端之家收集整理的这篇文章主要介绍了ruby – Delayed_job:如何使用handle_asynchronously处理函数?前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
功能是:
  1. def createuser(name,pass,time)
  2. puts name,time
  3. end

我尝试:

  1. handle_asynchronously :createuser("a","b","c")

并得到一个错误:语法错误,意外'(‘,期待keyword_end

谢谢.

===编辑===

北京的japen和web服务器中的用户数据库.所以我用这种方式创建一个用户.

  1. def createuser(name,time)
  2. Net::HTTP.get(URI.parse("http://www.example.net/builduser.PHP?hao=#{name}&mi=#{pass}&da=#{time}"))
  3. end

解决方法

您不需要将参数传递给handle_asynchronously方法,只是说您的方法应该始终传递给delayed_job.

所以在你的例子中:

  1. def create_user(name,time)
  2. puts name,time
  3. end
  4. handle_asynchronously :create_user

完全符合你的需要.
你打电话的时候

  1. create_user('john','foo',Time.now)

与召唤是一回事

  1. delay.create_user('john',Time.now)

我只是设置了一个测试应用程序来完成这个以测试答案,这里是delayed_job序列化的可执行处理程序:

  1. --- !ruby/struct:Delayed::PerformableMethod
  2. object: !ruby/ActiveRecord:User
  3. attributes:
  4. name:
  5. pass:
  6. created_at:
  7. updated_at:
  8. method_name: :create_user_without_delay
  9. args:
  10. - John
  11. - foo
  12. - 2011-03-19 10:45:40.290526 -04:00

猜你在找的Ruby相关文章