如何在Spring Boot IntegrationTest上禁用计划自动启动?
谢了。
请注意,外部组件可能会自动启用调度(请参见Spring框架中的HystrixStreamAutoConfiguration和MetricExportAutoConfiguration)。因此,如果您尝试在指定@enablescheduling
的@conditionalonproperty
或@profile
类上使用@conditionalproperty
,那么由于外部组件的原因,无论如何都会启用调度。
有一个@configuration
类,通过@enablescheduling
启用调度,但要将调度的作业放在单独的类中,每个类都使用@conditionalonproperty
启用/禁用包含@调度任务的类。
不要在同一个类中使用@schedured
和@enablescheduling
,否则会出现外部组件无论如何都在启用它的问题,因此忽略@conditionalonproperty
。
例如:
@Configuration
@EnableScheduling
public class MyApplicationSchedulingConfiguration {
}
然后在另一堂课上
@Named
@ConditionalOnProperty(value = "scheduling.enabled", havingValue = "true", matchIfMissing = false)
public class MyApplicationScheduledTasks {
@Scheduled(fixedRate = 60 * 60 * 1000)
public void runSomeTaskHourly() {
doStuff();
}
}
public class ConditionalThreadPoolTaskScheduler extends ThreadPoolTaskScheduler {
@Inject
private Environment environment;
// Override the TaskScheduler methods
@Override
public ScheduledFuture<?> schedule(Runnable task, Trigger trigger) {
if (!canRun()) {
return null;
}
return super.schedule(task, trigger);
}
@Override
public ScheduledFuture<?> schedule(Runnable task, Date startTime) {
if (!canRun()) {
return null;
}
return super.schedule(task, startTime);
}
@Override
public ScheduledFuture<?> scheduleAtFixedRate(Runnable task, Date startTime, long period) {
if (!canRun()) {
return null;
}
return super.scheduleAtFixedRate(task, startTime, period);
}
@Override
public ScheduledFuture<?> scheduleAtFixedRate(Runnable task, long period) {
if (!canRun()) {
return null;
}
return super.scheduleAtFixedRate(task, period);
}
@Override
public ScheduledFuture<?> scheduleWithFixedDelay(Runnable task, Date startTime, long delay) {
if (!canRun()) {
return null;
}
return super.scheduleWithFixedDelay(task, startTime, delay);
}
@Override
public ScheduledFuture<?> scheduleWithFixedDelay(Runnable task, long delay) {
if (!canRun()) {
return null;
}
return super.scheduleWithFixedDelay(task, delay);
}
private boolean canRun() {
if (environment == null) {
return false;
}
if (!Boolean.valueOf(environment.getProperty("scheduling.enabled"))) {
return false;
}
return true;
}
}
配置类,使用自定义调度器创建taskScheduler bean,并启用调度
@Configuration
@EnableScheduling
public class MyApplicationSchedulingConfiguration {
@Bean
public TaskScheduler taskScheduler() {
return new ConditionalThreadPoolTaskScheduler();
}
}
上面的潜在问题是,您已经创建了一个内部Spring类的依赖项,因此如果将来有更改,您必须修复兼容性。
问题内容: 是否可以禁用滚轮在输入数字字段中更改数字?我已经弄乱了特定于Webkit的CSS,以删除微调框,但我想完全摆脱这种行为。我喜欢使用它,因为它在iOS上带来了一个不错的键盘。 问题答案: 防止其他对象建议的输入数字元素上的mousewheel事件的默认行为(调用“ blur()”通常不是首选方法,因为这不是用户想要的)。 但。我会避免一直监听所有input-number元素上的mouse
问题内容: 如何在WildFly上完全禁用WELD。我不需要它,因为我使用了另一个DI框架。 异常0:javax.enterprise.inject.UnsatisfiedResolutionException:无法使用限定符[@ javax.enterprise.inject.Any(),@ javax.enterprise.inject来解析’org.springframework.data.
问题内容: 我想禁用长按(触摸并按住)Web应用程序中的图像后出现的上下文菜单。我见过关于如何做到这一点的不同想法,但似乎没有一个对我有用。 有没有办法通过HTML / CSS / Javascript在Android上执行此操作? 问题答案: 这应该适用于1.6或更高版本(如果我没记错的话)。我不认为有1.5或更早版本的解决方法。
问题内容: 添加排序器后,是否可以在JTable上禁用手动排序?因此,我有一个JTable附加了以下排序器(初始化表时,基本上按第3列排序): 效果很好,但是用户仍然可以单击表中的列标题,并按我要禁用的任何列进行排序。这可能吗? 问题答案: 您可以使用 TableRowSorter* 的 setSortable 方法,如下所示: * 使第0列不可排序。您可以根据需要在列上应用它。
问题内容: 我正在开发一个Web应用程序,正在尝试为其提供功能齐全的窗口系统。目前进展顺利,我只遇到一个小问题。有时,当我去拖动应用程序的一部分时(通常是窗口的角落div,应该触发调整大小的操作),Web浏览器变得很聪明,并认为我的意思是拖放东西。最终结果是,当浏览器进行拖放操作时,我的动作被暂停。 是否有一种简单的方法来禁用浏览器的拖放?理想情况下,我希望能够在用户单击某些元素时将其关闭,但要重
我正在使用Symfony2。0和FOSUserBundle,并希望在我的登录表单上禁用csrf令牌。 我已经禁用了csrf保护全球在我的网站在我的config.yml: 这工作得很好,没有csrf字段添加到我的表单中。但是,这不适用于登录表单。仅在此表单上,如果我没有将令牌包含在表单中,则会出现“无效的CSRF令牌”错误: 如何在登录表单上禁用CSRF令牌?