Ruby on rails 如何在服务器初始化时在rails中只设置一次常量,以便不在rake任务上运行?
我有一些每分钟运行的rake任务,当然每次都会生成environment.rb。我需要设置一个常量,该常量仅在rails服务器初始启动时在ServerInit上动态设置,而不是在每个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任务上设置,等等?为什么不将值写入文件。如果文件已经存在,请使用其中存储的值,否则创建文件并使用类似于
封送#加载
和封送#转储
的方法写出内容(如果需要)
只是想一想每分钟运行的rake任务都是不好的做法,最好使用守护进程/延迟作业/类似的东西instead@Mik_Die已经在为此使用
rufus调度程序了。好吧,仔细看看并尝试一下,这不利于设置程序。您可以编写自己的代码来设置文件中的数据。您试图将什么类型的对象存储在常量和检索中?你自己写吧是的,基本上我写的是ip地址。我想我可能真的应该把时间写出来,实际上我需要做的就是确保它每小时检查ip的次数不超过1次。听起来很简单,我可以把它写成yaml文件,或者逗号分隔的文件或其他文件。