我正在考虑将队列与delayed_job结合使用。我找到了thispage其中概述了启动worker的各种方式,但我想保留我目前的Capistrano方法:set:delayed_job_args,"-n2-pecv2.production"after"deploy:start","delayed_job:start"...我想知道如何修改delayed_job_args以处理生成具有特定队列的1个工作人员,以及每个其他工作的1个工作人员。到目前为止,我所拥有的只是像这样覆盖每个任务:namespace:delayed_jobdotask:restart,:roles=>:appdor
哪种方式,我可以通过远程服务器上的capistrano运行rake命令。例如我有一个带有一些方法的lib/task/reparse.rakedesc"it'stakecsvfile,makessomechangesandfilldbwiththisinfo"task:example1=>:environmentdorequire'csv'rows_to_insert=[]#someactions#...end在本地服务器上一切正常-我只是运行rakereparse:example1它的工作(正确填充数据库)。所以问题是-部署后如何在真实主机上运行此命令?我正在使用rails4.1+ca
我正在将git与capistrano结合使用。我在本地机器上的文件夹中初始化了我的项目:gitinit然后我将项目推送到服务器目录然后我调用了capdeploy部署工作正常,只是它将本地.git文件夹结构以及我的.gitignore和Capfile上传到一个可公开访问的文件夹。这是我的gitignore文件:.DS_Storeuploads/**/*Capfile.gitignore.git/**/*这似乎并不能解决问题。有帮助吗?谢谢!编辑:更新的.gitignore文件:将部署策略更改为导出:set:deploy_via,:export这适用于忽略.git文件夹,但仍然没有考虑下面
我如何在Capistrano任务中引用当前服务器?我想curl一个本地文件以清除APC缓存,但服务器不在localhost上监听,所以我需要服务器的IP地址。例如,role:web,"1.1.1.1","2.2.2.2","3.3.3.3"task:clear_apc,:role=>:webdorun"curlhttp://#{WHAT_DO_I_PUT_HERE}/deploy/clearAPC.php"end我会使用什么变量,以便当任务在1.1.1.1上运行时它curlshttp://1.1.1.1/deploy/clearAPC.php但是在2.2.2.2上运行时,它调用curl
我真的很困惑如何让Resque和resque_mailer在我的生产服务器上工作。当我执行capdeploy时,我需要做的是通过Capistrano运行/重新启动一个称为“邮件程序”的工作人员。我看过这个gist但我就是不明白。有没有其他东西可以分解它来解释它在做什么。还是有更简单的解决方案来使它正常工作?我已经让Redis正常工作,因为我已经将它用于其他任务。我的生产服务器如下:Ubuntu、Apache、Passenger、Ruby2.0、Rails4.0 最佳答案 最后我用的是Sidekiq。文档要好得多,而且可以正常工作!
我正在创建一个部署在AWS上的RubyonRails网站。我遇到了配置问题,我似乎找不到涵盖所提到的各种工具的配置以及如何设置它们以便于在开发(在本地主机上)和部署时使用的文档/教程。现在我已经设置了一个Rails应用程序,我正在为我所有的Rubygem使用Bundler。我有两个主要目标。易于开发-理想情况下,只需克隆存储库并运行“railsserver”就可以了。Redis服务器、Resqueworker、MongoDB数据库等所有其他东西都应该自动启动/创建。易于部署-给定一些配置文件(如YAML文件),我应该能够通过简单地运行“capproductiondeploy”或类似的东
我正在尝试为redis服务器添加一个启动-停止-重启的配方通过ssh登录远程服务器我可以运行serviceredis-serverrestart但添加到deploy.rake%w[startstoprestart].eachdo|command|desc"#{command}Redisserver."taskcommanddoonroles(:app)doexecute"serviceredis-server#{command}"endendend重启时出错DEBUG[8410afb7]Command:serviceredis-serverrestartDEBUG[8410afb7]S
如何在重新启动之前通过Capistrano删除特定于Redis的应用程序缓存。Redis运行在远程机器上,执行部署的机器上不需要安装redis客户端。 最佳答案 只要capistrano可以在部署时运行任何命令,只需使用redis-cli删除缓存键:role:redisserver,"127.0.0.1"...namespace:deploydo...before"deploy:restart","deploy:reset_redis_cache"task:reset_redis_cache,:roles=>:rediserverd
我刚刚从Ruby/Rails开发转向Python/Django,我正试图找到RVM/Bundler/Capistrano的最佳替代品,但它似乎一团糟?到目前为止我已经找到了这些:python酿造虚拟环境包装器点数简易安装设置工具对于capistrano,我发现Fabric似乎非常合身?我找到了一些描述如何设置virtualenv/pip/fabric的文章,但似乎每个人都在转向pythonbrew?我应该选择哪些?此外,pip/virtualenv似乎集成得相当好,但pythonbrew是更好的选择吗? 最佳答案 我广泛使用了pip
我不确定我的问题是否相关,因为我可能会尝试混合不应混合的工具(Capistrano和Docker)。我最近对一个使用Capistrano部署的应用程序进行了docker化。Dockercompose用于开发和登台环境。这是我的项目的样子(未显示应用程序文件):Capfiledocker-compose.ymldocker-compose.staging.ymlconfig/deploy.rbdeploystaging.rbDockerCompose文件创建了所有必要的容器(Nginx、PHP、MongoDB、Elasticsearch等)以在开发或暂存环境中运行应用程序(因此在dock