春季Cron第N个工作日

时间:2020-02-10 20:58:06

标签: spring cron

我正在做一个项目,我需要每周或每月保存cron表达式。月度克朗在一周的第n天创建。我正在使用cron-utils创建cron,并在此article上发现Spring Cron支持一周的第n天。但是,在编写代码时,我发现使用哈希在一周的第n天几乎没有支持。我搜索了互联网,但没有找到关于spring是否支持一周的第n天的明确答案。那么,Spring Cron是否支持一周的第n天?

在您回答不添加标签之前,请以为我要运行“每月的每个第二个星期三”。

1 个答案:

答案 0 :(得分:0)

我刚刚检查过,Springcron-utils也支持该功能。在适当的代码下面:

books = [{
    author: "a", 
    genres: ["a"]},
{author: "a", 
    genres: ["a", "b"]},
{author: "b", 
    genres: ["c", "b"]
}];
allBooks = (root, args) => {
      return (!args.author && !args.genre) ? books : (!args.author) ? 
      books.filter((book) => book.genres.includes(args.genre)):(!args.genre)? 
      books.filter((book) => book.author === args.author) : 
      (books.filter((book) => book.author === args.author)).filter((book) => 
      book.genres.includes(args.genre));
}

console.log(allBooks("",{genre: "b"})); 
//console:
//0: {author: "a", genres: Array(2)}
//1: {author: "b", genres: Array(2)}

这将在该月的第二个星期三午夜运行cron。 in the docs提供了类似的示例。

在cron-utils中,您可以使用以下代码来解析相同的表达式:

import org.springframework.scheduling.support.CronExpression;
CronExpression.parse("0 0 0 ? * WED#2");