当前位置: 首页 > news >正文

上海协策网站制作上海公司章程在哪里下载打印

上海协策网站制作,上海公司章程在哪里下载打印,网站盒子怎么做,百度自然排名网站的logo怎么做spring 计划任务您是否需要每天像闹钟一样在同一时间运行某个流程#xff1f; 然后#xff0c;Spring的预定任务适合您。 允许您使用Scheduled注释方法#xff0c;以使其在指定的时间或内部间隔运行。 在本文中#xff0c;我们将研究建立一个可以使用计划任务的项目#x… spring 计划任务 您是否需要每天像闹钟一样在同一时间运行某个流程 然后Spring的预定任务适合您。 允许您使用Scheduled注释方法以使其在指定的时间或内部间隔运行。 在本文中我们将研究建立一个可以使用计划任务的项目以及如何使用不同的方法来定义它们的执行时间。 我将在本文中使用Spring Boot以使依赖关系变得简洁而又简单这是因为调度可用于spring-boot-starter依赖关系该依赖关系几乎以某种方式包含在每个Spring Boot项目中。 这使您可以使用任何其他启动程序依赖项因为它们会引入spring-boot-starter及其所有关系。 如果要包括确切的依赖项本身请使用spring-context 。 您可以使用spring-boot-starter 。 dependencygroupIdorg.springframework.boot/groupIdartifactIdspring-boot-starter/artifactIdversion2.0.0.RC1/version /dependency 或直接使用spring-context 。 dependencygroupIdorg.springframework/groupIdartifactIdspring-context/artifactIdversion5.0.3.RELEASE/version /dependency 创建计划任务非常简单。 将Scheduled批注添加到希望自动运行的任何方法中并将EnableScheduling包含在配置文件中。 因此例如您可能会遇到类似以下的内容。 Component public class EventCreator {private static final Logger LOG LoggerFactory.getLogger(EventCreator.class);private final EventRepository eventRepository;public EventCreator(final EventRepository eventRepository) {this.eventRepository eventRepository;}Scheduled(fixedRate 1000)public void create() {final LocalDateTime start LocalDateTime.now();eventRepository.save(new Event(new EventKey(An event type, start, UUID.randomUUID()), Math.random() * 1000));LOG.debug(Event created!);} } 这里有很多代码对于运行计划任务并不重要。 正如我在一分钟前说过的我们需要在方法上使用Scheduled 它将自动开始运行。 因此在上面的示例中 create方法将每隔1000毫秒1秒开始运行如注释的fixedRate属性所示。 如果我们想更改其运行频率则可以增加或减少fixedRate时间或者可以考虑使用可用的不同调度方法。 因此您可能想知道其他方法是正确的吗 好了它们就在这里我还将在此处包括fixedRate 。 fixedRate在fixedRate调用之间以固定的毫秒周期执行该方法。 fixedRateString一样的fixedRate 但有一个字符串值来代替。 fixedDelay在一次调用结束与下一次调用之间以固定的毫秒fixedDelay执行该方法。 fixedDelayString一样fixedDelay但一个字符串值来代替。 cron使用类似cron的表达式来确定何时执行该方法我们将在稍后对此进行更深入的研究。 Scheduled批注还有一些其他实用程序属性。 zone指示将解析cron表达式的时区如果不包括时区它将使用服务器的默认时区。 因此如果您需要它在特定时区运行例如香港则可以使用zone GMT8:00 。 initialDelay延迟第一次执行计划任务的毫秒数需要使用固定速率或固定延迟属性之一。 initialDelayString同为initialDelay但一个字符串值来代替。 以下是一些使用固定速率和延迟的示例。 Scheduled(fixedRate 1000) 与之前相同每1秒运行一次。 Scheduled(fixedRateString 1000) 同上。 Scheduled(fixedDelay 1000) 在上一次调用完成后运行1秒。 Scheduled(fixedRate 1000, initialDelay 5000) 每秒运行一次但要等待5秒钟才能首次执行。 现在来看一下cron属性它可以对任务的调度进行更多控制让我们定义任务运行的秒数分钟数和小时数还可以进一步定义任务的运行年限。 以下是构建cron表达式的组件的细分。 Seconds值可以为0-59或特殊字符, - * / 。 Minutes值可以为0-59或特殊字符, - * / 。 Hours值可以为0-59或特殊字符, - * / 。 Day of month值可以为1-31或特殊字符, - * ? / LWC , - * ? / LWC 。 Month值可以为1-12 JAN-DEC或特殊字符, - * / 。 Day of week值可以是1-7 SUN-SAT或特殊字符, - * ? / LC # , - * ? / LC # 。 Year可以为空值可以为1970-2099或特殊字符, - * / 。 为了更加清晰起见我将细目分类组合成一个由字段标签组成的表达式。 Scheduled(cron [Seconds] [Minutes] [Hours] [Day of month] [Month] [Day of week] [Year]) 请不要在表达式中包括花括号我用它们来使表达式更清晰。 在我们继续之前我们需要了解特殊字符的含义。 *表示所有值因此如果在第二个字段中使用则表示每秒或在天字段中使用表示每天运行。 ? 表示没有特定的值并且可以在“月的天”或“星期几”字段中使用其中使用一个会使另一个无效。 如果我们指定在一个月的15日触发则一个? 将在“ Day of week字段中使用。 -表示值的范围例如小时数字段中的1-3表示小时数1、2和3。 ,代表附加价值例如周一周三SUN在本周说明此一天在周一周三和周日。 /代表增量例如秒字段中的0/15从00、15、30和45开始每15秒触发一次。 L代表一周或一个月的最后一天。 请记住在这种情况下星期六是一周的结束因此在星期几字段中使用L将在星期六触发。 可以与月日字段中的数字结合使用例如6L代表月的最后一个星期五或者L-3这样的表达式表示月的最后一天。 如果我们在“星期几”字段中指定一个值则必须使用? 在“日”字段中反之亦然。 W表示每月的最接近的工作日。 例如如果15W是工作日则在每月的第15天触发否则它将在最近的工作日运行。 该值不能用于日期值列表中。 #指定任务应该在星期几和星期几触发。 例如 5#2表示该月的第二个星期四。 如果您指定的日期和星期溢出到下个月则不会触发。 在这里可以找到有用的资源其中的解释稍长一些这有助于我撰写本文。 让我们来看几个例子。 Scheduled(cron 0 0 12 * * ?) 每天晚上12点开火。 Scheduled(cron 0 15 10 * * ? 2005) 2005年每天早上10:15触发。 Scheduled(cron 0/20 * * * * ?) 每20秒触发一次。 有关更多示例请参见我前面提到的链接 此处再次显示。 幸运的是如果您在编写一个简单的cron表达式时遇到麻烦那么您应该可以在Google中找到所需的方案因为有人可能已经在Stack Overflow上问了相同的问题。 要将上述内容与一个小的代码示例绑定在一起请参见下面的代码。 Component public class AverageMonitor {private static final Logger LOG LoggerFactory.getLogger(AverageMonitor.class);private final EventRepository eventRepository;private final AverageRepository averageRepository;public AverageMonitor(final EventRepository eventRepository, final AverageRepository averageRepository) {this.eventRepository eventRepository;this.averageRepository averageRepository;}Scheduled(cron 0/20 * * * * ?)public void publish() {final double average eventRepository.getAverageValueGreaterThanStartTime(An event type, LocalDateTime.now().minusSeconds(20));averageRepository.save(new Average(new AverageKey(An event type, LocalDateTime.now()), average));LOG.info(Average value is {}, average);} } 在这里我们有一个类每20秒查询Cassandra以获取同一时间段内事件的平均值。 同样这里的大多数代码都是Scheduled批注中的噪音但是在野外看到它可能会有所帮助。 此外如果您一直保持观察对于这种每20秒运行一次的用例在这里我们使用频率如此之高因此使用fixedRate以及可能使用fixedDelay属性代替cron更为合适。 Scheduled(fixedRate 20000) 是上面使用的cron表达式的fixedRate等效项。 我前面提到的最终要求是将EnableScheduling批注添加到配置类。 SpringBootApplication EnableScheduling public class Application {public static void main(final String args[]) {SpringApplication.run(Application.class);} } 作为一个很小的Spring Boot应用程序我已经将EnableScheduling批注附加到主SpringBootApplication类。 总而言之我们可以安排任务使用Scheduled注释以及执行之间的毫秒级速率或cron表达式来触发以实现无法用前者表达的更精确的时序。 对于需要经常运行的任务使用fixedRate或fixedDelay属性就足够了但是一旦执行之间的时间变大则很难快速确定所定义的时间。 发生这种情况时应使用cron属性以更好地了解计划的时间。 这篇文章中使用的少量代码可以在我的GitHub上找到 。 如果您发现这篇文章很有帮助并希望在我撰写新教程时保持最新请在Twitter上LankyDanDev关注我。 翻译自: https://www.javacodegeeks.com/2018/02/running-time-springs-scheduled-tasks.htmlspring 计划任务
http://www.huolong8.cn/news/365631/

相关文章:

  • 苏州网站建设店铺装修营销型网站建设的一般过程包括哪些环节
  • 手机主页网站推荐罗湖区seo排名
  • cms网站制作平台的重要性
  • 备案网站名称怎么写个人佛山网站上排名
  • 网站开发技术代码抖音关键词推广
  • 网站增加权重吗网页游戏开发教程
  • 佛山定制软件开发公司西安seo代理计费
  • 兰州大学网页与网站设计成都最好的软件公司
  • 重庆响应式网站建设建立平台网站要多久
  • 西安网上注册公司流程长春百度seo代理
  • 公司网站开发可行性报告专门做头像的网站
  • 点个赞科技 网站制作临沂seo公司稳健火星
  • 搭建一个网站大概需要多少钱哪个网站的ps元素好
  • 网站正在建设中服装设计基础
  • 彩票网站开发多少钱苏州网站定制
  • 兰州网站维护公司广西建设工程造价管理协会网站
  • 服务器租用网站模板网站开发工作标准
  • 可以通过哪些网站注册域名跨境电商出口平台有哪些?
  • 语文建设网站南京百度推广
  • 安徽省建设工程网站wordpress网站网速慢
  • 中建八局第三建设有限公司网站怎么查网站是不是百度做的
  • dreamwearver做网站公司网站优化怎么做
  • 青岛网站备案天河网站建设推广
  • o2o网站开发框架网站建设源码下载
  • cdr做图时怎么找到网站的哪些专业能建网站
  • 网站商务通弹出窗口图片更换设置百度seo点击软件
  • 可以做设计私单的网站做网站什么框架比较好
  • 上海信息公司做网站花箱 东莞网站建设
  • 青岛建设工程信息网站网站设计公司合肥
  • 宜春做网站免费网站模版下载