Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ruby-on-rails/54.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby on rails 跨rails应用程序中的所有线程访问值_Ruby On Rails_Ruby_Multithreading_Ruby On Rails 4_Delayed Job - Fatal编程技术网

Ruby on rails 跨rails应用程序中的所有线程访问值

Ruby on rails 跨rails应用程序中的所有线程访问值,ruby-on-rails,ruby,multithreading,ruby-on-rails-4,delayed-job,Ruby On Rails,Ruby,Multithreading,Ruby On Rails 4,Delayed Job,我有一个用户模型,我正在线程中设置一个值 Thread.current[:partner_domain] = "example.com" 我可以在模型中访问此域,但不能在延迟的job worker中访问,因为它在单独的线程中运行,由于某些业务需求,我无法将此域保存在数据库中 更清楚地说,我正在动态创建的方法中使用Thread.current[:partner\u domain],该方法由延迟的工作人员调用 请帮我解决这个问题。如果延迟的工作人员需要此值来处理作业,我认为您可以将此值作为作业参数

我有一个用户模型,我正在线程中设置一个值

Thread.current[:partner_domain] = "example.com"
我可以在模型中访问此域,但不能在延迟的job worker中访问,因为它在单独的线程中运行,由于某些业务需求,我无法将此域保存在数据库中

更清楚地说,我正在动态创建的方法中使用
Thread.current[:partner\u domain]
,该方法由延迟的工作人员调用


请帮我解决这个问题。

如果延迟的工作人员需要此值来处理作业,我认为您可以将此值作为作业参数传递。

如果延迟的工作人员需要此值来处理作业,我认为您可以将此值作为作业参数传递。

多线程与此无关。DelayedJob worker在一个单独的进程中运行,因此不会与rails服务器进程共享任何内容。没有线程,没有内存,什么都没有

正确的做法是将作业所需的所有数据捆绑到其参数中。大概是这样的:

 MyClass.delay.do_action(primary_data, options)

其中
选项
包含您的合作伙伴域名和所有其他信息。然后作业只访问参数中的信息。

多线程与此无关。DelayedJob worker在一个单独的进程中运行,因此不会与rails服务器进程共享任何内容。没有线程,没有内存,什么都没有

正确的做法是将作业所需的所有数据捆绑到其参数中。大概是这样的:

 MyClass.delay.do_action(primary_data, options)

其中
选项
包含您的合作伙伴域名和所有其他信息。然后作业只访问参数中的信息。

Global state FTW!不,不要这样做。或者,如果你知道自己在做什么,你可以自己承担风险。@bsvin33t如何处理这些事情,你能给出一个答案吗?我还有一个问题,你不能用redis之类的东西来保持这个值吗?这个值对每项工作都是变化的还是静态的?@bsvin33t:全局状态很好。另一方面,可变的全局状态……全局状态FTW!不,不要这样做。或者,如果你知道自己在做什么,你可以自己承担风险。@bsvin33t如何处理这些事情,你能给出一个答案吗?我还有一个问题,你不能用redis之类的东西来保持这个值吗?这个值对每项工作都是变化的还是静态的?@bsvin33t:全局状态很好。另一方面,可变的全局状态。。。。