Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ruby-on-rails/60.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/ruby/21.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中只设置一次常量,以便不在rake任务上运行?_Ruby On Rails_Ruby_Ruby On Rails 3 - Fatal编程技术网

Ruby on rails 如何在服务器初始化时在rails中只设置一次常量,以便不在rake任务上运行?

Ruby on rails 如何在服务器初始化时在rails中只设置一次常量,以便不在rake任务上运行?,ruby-on-rails,ruby,ruby-on-rails-3,Ruby On Rails,Ruby,Ruby On Rails 3,我有一些每分钟运行的rake任务,当然每次都会生成environment.rb。我需要设置一个常量,该常量仅在rails服务器初始启动时在ServerInit上动态设置,而不是在每个rake任务上 如何做到这一点?如何确保某个特定常量仅在主应用程序启动时设置一次,而不在其他后续rake任务上设置,等等?为什么不将值写入文件。如果文件已经存在,请使用其中存储的值,否则创建文件并使用类似于封送#加载和封送#转储的方法写出内容(如果需要) 只是想一想每分钟运行的rake任务都是不好的做法,最好使用守护

我有一些每分钟运行的rake任务,当然每次都会生成environment.rb。我需要设置一个常量,该常量仅在rails服务器初始启动时在ServerInit上动态设置,而不是在每个rake任务上


如何做到这一点?如何确保某个特定常量仅在主应用程序启动时设置一次,而不在其他后续rake任务上设置,等等?

为什么不将值写入文件。如果文件已经存在,请使用其中存储的值,否则创建文件并使用类似于
封送#加载
封送#转储
的方法写出内容(如果需要)


只是想一想

每分钟运行的rake任务都是不好的做法,最好使用守护进程/延迟作业/类似的东西instead@Mik_Die已经在为此使用
rufus调度程序了。好吧,仔细看看并尝试一下,这不利于设置程序。您可以编写自己的代码来设置文件中的数据。您试图将什么类型的对象存储在常量和检索中?你自己写吧是的,基本上我写的是ip地址。我想我可能真的应该把时间写出来,实际上我需要做的就是确保它每小时检查ip的次数不超过1次。听起来很简单,我可以把它写成yaml文件,或者逗号分隔的文件或其他文件。