草庐IT

springboot定时执行任务

全部标签

ruby - 让 sidekiq 立即执行作业

目前,我有一个像这样的sidekiq工作:classSyncUserincludeSidekiq::Workerdefperform(user_id)#dostuffendend我正在像这样在队列中放置一个作业:SyncUser.perform_asyncuser.id当然这一切都有效,但在调用perform_async和作业实际执行之间有一点延迟。我还能做些什么来告诉sidekiq立即执行作业吗? 最佳答案 这里有两个问题。如果你想立即执行一个作业,在当前上下文中你可以使用:SyncUser.new.perform(user.id

ruby - 如何获取当前rake任务的PID?

我将收割机线放入rake任务中,以杀死一些额外生成的ruby​​任务,因为它们有时会不知何故爬上来。system"psaux|grep'namespace:taskname'|grepruby|grep-vgrep|awk'{print$2}'|xargskill-9;echo'Reapedoldnamespace:tasknameprocesses.'"我想在其中添加grep-v$PID_OF_CURRENT_TASK以确保我不会终止当前正在运行的任务。我如何获得该PID? 最佳答案 您可以使用Process.pid在Ruby中获

ruby-on-rails - 从迁移中执行 Rake 任务?

我有一个Rake任务将配置数据从文件加载到数据库中,是否有正确的ruby​​/rails方法在迁移时调用它?我的目标是同步我的团队数据库配置,无需广播然后运行任务lalaladefself.upchange_table:fis_situacao_fiscaldo|t|t.remove:mostrar_enderecot.rename:serie,:modeloendFaturamento::Cfop.destroy_all()#performrakehere!end更新我现在的工作方式和工作方式:system('rakesistema:load_datafile=faturamento

ruby-on-rails - Ruby/Rails 有没有办法执行字符串中的代码?

所以我有一个包含不同代码示例(阅读片段)的数据库。代码示例由用户创建。在Rails中有没有办法执行它?例如,我的数据库中有以下代码(id=123):return@var.reverse有没有办法让我执行它?像这样的东西:@var='Hello'@result=exec(CodeSample.find(123))所以结果会是'olleH' 最佳答案 您可以使用eval:code='@var.reverse'@var='Hello'@result=eval(code)#=>"olleH"但是这样做要非常小心;您授予该代码对您系统的完全访

ruby - 在 Rspec 测试中运行 Rake 任务

我正在构建一个集成测试套件,我需要一个干净的数据库来处理一些逻辑。如何在我的一个测试中运行db:test:purge任务?我正在使用:ruby1.9.2、rails3.0.9、rspec2.6 最佳答案 您可以按如下方式调用Rake任务:require'rake'Rake::Task[name].invoke在这种情况下,这将导致以下代码:require'rake'Rake::Task['db:test:purge'].invoke 关于ruby-在Rspec测试中运行Rake任务,我们

ruby - 如何在 Ruby 脚本中运行 Rake 任务?

我有一个Rakefile,其中包含我通常从命令行调用的Rake任务:rakeblog:postTitle我想编写一个多次调用Rake任务的Ruby脚本,但我看到的唯一解决方案是使用``(反引号)或system进行处理。正确的做法是什么? 最佳答案 来自timocracy.com:require'rake'defcapture_stdouts=StringIO.newoldstdout=$stdout$stdout=syields.stringensure$stdout=oldstdoutendRake.application.rak

ruby-on-rails - 如何使用 postgresql 在 Rails 中执行不区分大小写的顺序

我正在将我的开发环境从sqlite3切换到postgresql8.4,还有最后一个障碍。在我原来的帮助方法中有以下行;result=Users.find(:all,:order=>"namecollateNOCASE")它提供了一个非常好的不区分大小写的搜索。我不能为postgresql复制这个。应该很简单-有什么想法吗?谢谢。 最佳答案 result=Users.find(:all,:order=>"LOWER(name)")向Brad和Frank学习一点。 关于ruby-on-rai

ruby-on-rails - bundler :在使用 gem 进行 bundle 安装期间,找不到带有可执行 bundle (Gem::GemNotFoundException) 的 gem bundler (>= 0.a)

我正在执行以下脚本:geminstallrdoc--no-documentgeminstallbundlebundle输出:+geminstallrdoc--no-documentSuccessfullyinstalledrdoc-6.1.11geminstalled+geminstallbundleSuccessfullyinstalledbundle-0.0.1Parsingdocumentationforbundle-0.0.1Doneinstallingdocumentationforbundleafter2seconds1geminstalled1geminstalled+b

ruby-on-rails - 在 gem 中包括 rake 任务

1)在gems中是否有一个“最佳”的抽取任务位置?我在/tasks、/lib/tasks中看到过它们,而且我看到它们写成*.rb和*.rake--不确定哪个(如果有的话)是“正确的”2)在环境中配置gem后,如何让应用程序可以使用它们? 最佳答案 在Rails3上,您可以通过Railties执行此操作。这是为我刚刚制作的gem执行此操作的代码:classBackupTask因此,您基本上创建了一个继承自Rails::Railtie的类,然后在该类中您有一个加载相关文件的rake_tasksblock。如果你想使用.rake扩展,你必

ruby-on-rails - rake 任务在哪里定义?

在新创建的Rails项目(由railssomeName生成)中,可以运行一些“默认”rake任务,例如:抽取测试rake数据库:迁移等等问题是,这些任务是在哪里描述的?默认的Rakefile没有所有这些任务。此外,我检查了一些使用rspec的项目,我能够运行rakespec来运行所有测试。spec目标在哪里定义? 最佳答案 如果描述你的意思是定义,rake-W是你的friend。示例:$rake-Wdb:create=>rakedb:create/path/to/ruby/gems/1.9.1/gems/activerecord-3