我在rails-3项目上使用Resque来处理计划每5分钟运行一次的作业.我最近做了一些事情,滚动了这些工作的创造,堆栈已经打了1000多个工作.我修复了导致许多作业排队的问题,现在我遇到的问题是错误创建的作业仍然存在,因此将作业添加到具有1000多个作业的队列中变得很难测试.我似乎无法阻止这些工作.我尝试使用flushall命令从redis-cli中删除队列,但它不起作用.我错过了什么吗?因为我似乎无法找到摆脱这些工作的方法.
我的rails应用程序有一个网站爬虫,可以加载爬虫在rails初始化程序中使用的身份验证凭据config/initializers
.初始化程序通过调用SiteLogin模型中的模型方法来加载身份验证.
当我运行rake db:migrate
创建SiteLogin
模型表时,它会失败,因为初始化程序期望数据库表已经存在.我可以简单地在我的初始化程序中注释掉代码,运行迁移来创建表,然后取消注释初始化程序代码,而不用担心问题.
问题是,我正在使用Capistrano进行部署,这意味着我必须首先部署而不使用初始化代码来运行迁移,然后再使用初始化代码进行部署.有没有更好的方法来做到这一点,或者在这种情况下我的方法是完全错误的.
这里有一些代码示例可以更好地解释我的情况:
# config/initializers/site_crawler_init.rb
SiteCrawler.setup do |config|
config.hostname = "www.example.com"
end
# model/site_crawler.rb
class SiteCrawler
...
class << self
attr_accessor :configuration
def setup
self.configuration ||= Configuration.new
yield(configuration)
end
end
class Configuration
attr_accessor :hostname, :login_credentials
def initialize
@login_credentials = SiteLogin.admin_user
...
end
end
end
Run Code Online (Sandbox Code Playgroud) 请原谅我,如果之前已经问过这个问题,但我还没有得到一个帮助我解决问题的直接答案.我有一个使用spring-security保护的gwt应用程序.Spring安全性只是验证用户身份并重定向到gwt应用程序.现在我希望用户能够从登录页面上的链接更改区域设置,之后区域设置将存储在cookie上并在应用程序中使用.
我在applicationContext.xml中有以下配置
<http auto-config="true">
<intercept-url pattern="/mywebapp/**" access="ROLE_USER"/>
<intercept-url pattern="/gwt/**" access="ROLE_USER"/>
<intercept-url pattern="/**/*.html" access="ROLE_USER"/>
<intercept-url pattern="/**" access="IS_AUTHENTICATED_ANONYMOUSLY" />
<intercept-url pattern="/login.jsp*" access="IS_AUTHENTICATED_ANONYMOUSLY"/>
<form-login login-page="/login.jsp"/>
</http>
<beans:bean id="userDetailsService"
class="com.kibet.mywebapp.server.auth.UserDetailsServiceImpl">
</beans:bean>
...
<!-- Application Message Bundle -->
<beans:bean id="messageSource"
class="org.springframework.context.support.ReloadableResourceBundleMessageSource">
<beans:property name="basename" value="classpath:messages" />
<beans:property name="defaultEncoding" value="UTF-8"/>
</beans:bean>
<beans:bean id="localeChangeInterceptor"
class="org.springframework.web.servlet.i18n.LocaleChangeInterceptor">
<beans:property name="paramName" value="lang" />
</beans:bean>
<beans:bean id="localeResolver"
class="org.springframework.web.servlet.i18n.CookieLocaleResolver">
<beans:property name="defaultLocale" value="pt"/>
</beans:bean>
<beans:bean id="urlMapping"
class="org.springframework.web.servlet.handler.SimpleUrlHandlerMapping">
<beans:property name="interceptors">
<beans:list>
<beans:ref bean="localeChangeInterceptor"/>
</beans:list>
</beans:property>
<beans:property name="mappings">
<beans:value>/login.jsp=userDetailsService</beans:value>
</beans:property>
</beans:bean>
Run Code Online (Sandbox Code Playgroud)
这似乎不起作用.我的类路径中有locale属性文件messages_en.properties,messages_es.properties和messages_pt.properties.它唯一有效的时间是我更改浏览器的默认语言环境.据我所知,登录页面是由spring-security生成的,处理程序映射不能拦截语言环境更改请求.如果这就是我如何解决这个问题的原因?非常感谢帮助.
这是我的自定义过滤器代码.
public class InternationalizationFilter implements …
Run Code Online (Sandbox Code Playgroud) 我有一个书籍模型,其日期类型列名为publish_date.根据我的观点,我正在翻阅书籍,我想按年份对书籍进行分组,这样我每年都会有一个标题,而那一年出版的书籍将列在年度标题下面.
因此,从2010年开始,将列出2010年出版的所有书籍,然后列出2009年出版的所有书籍的另一个标题"2009",等等.
<% @all_books.each do |book| %>
<%=link_to book.title + ", (PDF, " + get_file_size(book.size) + ")" %>
<% end %>
Run Code Online (Sandbox Code Playgroud)
通过book.publish_date.strftime("%Y"),我能够得到年份,但我不知道如何按年份对条目进行分组.任何有关这方面的帮助将不胜感激.
我正在尝试将 Ibatis 与 GWT 一起使用,我有这个场景,我有数据库表机场、航站楼和航班。一个机场可以有不同的航站楼。一个航站楼可以有一个机场和多个航班。一个航班可以有一个航站楼。所以表结构看起来像这样。
机场 -id -name -terminal_id
航站楼 -id -name -flight_id
航班 -id -airline -terminal_id
我的选择语句看起来像这样
SELECT airport.name AS Airport,
terminals.name AS Terminal,
flights.airline,
FROM airport,
terminals,
flights
WHERE airport.terminal_id = terminals.id
AND terminals.flight_id = flights.id;
Run Code Online (Sandbox Code Playgroud)
得到这个结果的 sql 映射是什么样的。我感到困惑的是结果集是表的组合,因此结果集不是三个表中任何一个的模型对象。