我正在尝试编写一个Windows cmd脚本来执行多个串行任务.但是,它始终在脚本中的第一个命令后停止.
它停止后的命令是maven构建(不确定是否相关).
如何让它依次进行并依次运行每项任务?
安装任何软件或配置注册表等是完全不可能的 - 它必须在我担心的Windows XP安装上工作.
理想情况下,如果任何命令失败,我希望脚本中止,但这是一个"很好",不是必需的.
谢谢.
我有一个Ruby on Rails网站,可以对外部Web服务进行HTTP调用.
大约每天一次我得到一个SystemExit(下面的堆栈跟踪)错误电子邮件,其中对服务的调用失败.如果我稍后在我的网站上尝试完全相同的查询,它可以正常工作.自从该网站上线以来,它一直在发生,我没有找到导致它的原因.
Ruby是版本1.8.6,rails是版本1.2.6.
其他人有这个问题吗?
这是错误和堆栈跟踪.
发生了SystemExit /usr/local/lib/ruby/gems/1.8/gems/rails-1.2.6/lib/fcgi_handler.rb:116:in exit'/usr/local/lib/ruby/gems/1.8/gems/ rails-1.2.6/lib/fcgi_handler.rb:116:在exit_now_handler'/usr/local/lib/ruby/gems/1.8/gems/activesupport-1.4.4/lib/active_support/inflector.rb:250:into_proc '/usr/local/lib/ruby/1.8/net/protocol.rb:133:in调用'/usr/local/lib/ruby/1.8/net/protocol.rb:133:in sysread'/ usr/local/lib/ruby/1.8/net/protocol.rb:133:在rbuf_fill'/usr/local/lib/ruby/1.8/timeout.rb:56:in timeout'/usr/local/lib/ruby/1.8/timeout. rb:76:在超时'/usr/local/lib/ruby/1.8/net/protocol.rb:132:in rbuf_fill'/usr/local/lib/ruby/1.8/net/protocol.rb:116:in readuntil '/usr/local/lib/ruby/1.8/net/protocol.rb:126:in readline'/usr/local/lib/ruby/1.8/net/http.rb:2017:在read_status_line'/usr/local/lib/ruby/1.8/net/http.rb:2006:in read_new'/usr/local/lib/ruby/1.8/net/http.rb:1047:in request'/ usr/local/lib/ruby/1.8/net/http.rb:945:in request_get'/usr/local/lib/ruby/1.8/net/http.rb:380:in get_response'/ usr/local/lib/ruby/1.8/net/http.rb:543:在启动'/usr/local/lib/ruby/1.8/net/http.rb:379:in get_response'
我编写了一个跟随常规目录结构的rails应用程序(模型中的模型代码,控制器中的控制器代码).
但我现在正在开发一个新功能,为此我写了一些(我称之为)"服务"代码.
新功能是将一些数据导入系统,目前它有两个类进行导入,但可以扩展到更多.
我不相信新代码属于模型,因为它没有对任何对象建模(它也不直接与任何单个对象相关.我当然不认为它属于控制器,因为它不是表示逻辑.
所以,我已经创建了一个"app/services"目录并将其放在那里.我还创建了一个"测试/服务"目录,我已经进行了测试.
我认为一切都很好,但是当我运行'rake:test'或'autotest'时,我的新服务测试没有运行.
现在我希望有一种方法可以让rake拿起它们,但这是一个警告标志,我做错了什么?
代码应该存在其他地方还是我不知道"Rails方式"做什么?
通常,每当我遇到这样的问题之前,我通常都会发现rails已经有了解决方案,但我并不知道这个约定.这是其中一个案例吗?
我想设置为记录在这里的Ehcache复制:http://ehcache.sourceforge.net/EhcacheUserGuide.html#id.s22.2
这是在Windows机器上,但在生产中在Solaris将最终运行.
说明如下设置提供者:
<cacheManagerPeerProviderFactory
class="net.sf.ehcache.distribution.RMICacheManagerPeerProviderFactory"
properties="peerDiscovery=automatic, multicastGroupAddress=230.0.0.1,
multicastGroupPort=4446, timeToLive=32"/>
Run Code Online (Sandbox Code Playgroud)
像这样的倾听者:
<cacheManagerPeerListenerFactory
class="net.sf.ehcache.distribution.RMICacheManagerPeerListenerFactory"
properties="hostName=localhost, port=40001,
socketTimeoutMillis=2000"/>
Run Code Online (Sandbox Code Playgroud)
我的问题是:
多播IP地址和端口是否是任意的(我知道地址必须在特定范围内,但它们必须是特定的数字)?
它们是否需要由我们的系统管理员以某种方式设置(我在办公室网络上)?
我想在本地测试它,所以使用上面的配置运行两个单独的tomcat实例.我需要在每个方面做些什么改变?我知道两个听众都听不到同一个端口 - 但提供商怎么样?
另外,侦听器端口是否也是任意的?
我已经尝试过如上设置,但在我的测试中,缓存似乎没有被复制 - 在一个tomcat的缓存中添加的值不存在于另一个缓存中.
我可以做些什么来调试这种情况(除了数据包嗅探)?
在此先感谢任何帮助,一直在我的头发上撕裂!
在ruby中,我使用以下格式解析日期:24092008.我想将每个部分(年,月,日)转换为数字.
我使用正则表达式将它们拆分,它产生三个字符串,我将它传递给Integer构造函数.
date =~ /^([\d]{2})([\d]{2})([\d]{4})/
year = Integer($3)
month = Integer($2)
day = Integer($1)
Run Code Online (Sandbox Code Playgroud)
当它击中月线时,崩溃如下:
`Integer': invalid value for Integer: "09" (ArgumentError)
Run Code Online (Sandbox Code Playgroud)
我花了一段时间才意识到它正在解释前导零,因为Octal和09不是有效的八进制数(它与"07"一起工作正常).
有没有一个优雅的解决方案,或者我应该测试小于10的数字并首先删除零?
谢谢.
我们正在评估从C3P0连接池切换到Tomcat JDBC连接池(如此处所述).
它似乎作为一个连接池工作,但是当我运行jconsole时,我似乎无法看到它的任何JMX条目.
开箱即用的C3P0通过JMX提供了大量的操作和属性,Tomcat JDBC连接池没有提供(对我而言).
根据上面链接的页面,有一个jmxEnabled标志,默认为true.我明确地设置了它,但它似乎没有区别.
我错过了什么?
顺便说一句,我正在运行一个相当标准的Java6/Spring/Hibernate应用程序.
我正在使用Rails和jquery与RJS模板来执行各种AJAX请求.
对于我的大多数Ajax内容,我将一个提交处理程序附加到我的application.js中的表单,如下所示:
$('#tagging_flickr_photos').submitWithAjax();
$('#tag_submit').click(function() {
$('#flickr-photos-status').show();
});
Run Code Online (Sandbox Code Playgroud)
这会调用表单操作进行一些处理,然后转发到RJS模板,如下所示:
$("#flickr-photos-status").hide();
$("#flickr-photos").fadeIn();
$("#flickr-photos").html("<%= escape_javascript(render(:partial => 'flickr_photos_for_tagging_content')) %>");
Run Code Online (Sandbox Code Playgroud)
这是一种享受.
现在我尝试做同样的事情,但只是基于在下拉列表中选择不同的值而不是提交表单.这是我的javascript将处理程序附加到下拉列表:
$('#film_film_name_id').change(function() {
$.get('/admin_film/make_tags?film_name_id=' + $("#film_film_name_id").val() + '&film_speed_id=' + $("#film_film_speed_id").val());
});
Run Code Online (Sandbox Code Playgroud)
我的控制器方法做了一些处理,然后转发到RJS模板(make_tags.js.erb):
$("#film_tags").val(<%=@tags%>)
Run Code Online (Sandbox Code Playgroud)
但是,模板似乎不会执行.我可以在我的日志中看到它正在调用我的方法并呈现模板的条目,但无论我在模板中放置什么似乎都没有发生.我在那里放了一个Javascript警报,它不会触发.
我假设问题是附加我的Javascript处理程序,但我无法弄清楚我缺少什么.
在此先感谢您的帮助.