项目启动,定时任务报错Based on configured schedule, the given trigger ‘DEFAULT.TASK_CLASS_NAME131‘

这是由于设置的定时任务cron表达式时间是过去的时间,导致这个任务永远不会被启动,所以报错。

查询其他文章建议可以修改cron表达式,但是我这边需求是允许存在只执行一次的定时任务,也就是在执行完这次定时任务之后,
该cron表达式是一定会过期的。
所以可以从报错入手,启动项目时报错,是因为在项目启动,初始化定时器的时候会把数据库中所有的定时任务都提交到定时任务调度器内,遇到过期的cron表达式就检测到报错,导致项目无法启动。那就可以在定时任务提交调度器的时候添加try-catch处理,遇到有问题的已经过期cron任务跳过就行。

@PostConstruct
public void init() throws SchedulerException, TaskException
{
    scheduler.clear();
    List<SysJob> jobList = jobMapper.selectJobAll();
    for (SysJob job : jobList) {
        try {
            ScheduleUtils.createScheduleJob(scheduler, job);
        }catch (Exception e){
            continue;
        }
    }
}

这是在遇到这个问题时候想到的解决办法,可能片面,可能没考虑其他因素,仅供参考。。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 这个错误提示意为默认的发现设置不适合用于生产环境,必须至少配置其中一个 [discovery.seed_hosts, discovery.seed_providers, cluster.initial_master_nodes]。 简单来说,这个错误提示是在提醒用户在使用生产环境时需要配置一些必要的发现设置,以确保系统的稳定性和可靠性。您可以在这些选项中选择至少一个进行配置,以满足系统的需求。 ### 回答2: 默认的发现设置对于生产环境是不适用的,至少必须配置以下其中的一个参数:discovery.seed_hosts、discovery.seed_providers或者cluster.initial_master_nodes。 在Elasticsearch中,集群的发现是非常重要的。在集群中,节点需要相互发现,然后才能进行通信和协作。默认的发现设置指定了一些可用的发现节点,但是这些节点可能不适合你的生产环境。 如果你不修改这些默认的发现设置,可能会遇到以下问题: 1. 集群无法启动:如果默认的发现设置无法找到可用的节点,那么集群将无法启动。 2. 节点无法加入集群:如果节点无法发现其他节点,它们将无法加入集群,这会使得集群无法协作。 3. 集群数据丢失:如果节点无法发现其他节点,那么可能会导致索引分片在节点之间无法正确地分配,最终导致数据丢失。 因此,为了保证集群的可靠性和稳定性,在生产环境中至少需要配置以下其中的一个参数: 1. discovery.seed_hosts:指定节点的ip地址或者主机名,这些节点将会作为发现节点来帮助新节点加入集群。 2. discovery.seed_providers:指定发现节点的提供者,例如,可以指定AWS EC2作为发现节点的提供者来帮助新节点加入到集群中。 3. cluster.initial_master_nodes:指定一个静态的节点列表,这些节点将作为初始的主节点来协调集群的状态交换。 通过配置以上其中的任意一个参数,可以确保在生产环境中,节点能够正常地发现其他节点,并能够加入到集群中来。 ### 回答3: 默认的发现设置在生产环境中是不适合的,至少需要配置其中的一个参数[discovery.seed_hosts、discovery.seed_providers、cluster.initial_master_nodes]。 在 Elasticsearch 中,发现服务是一个很关键的部分。它对于构建一个可靠和可扩展的集群非常重要。默认的发现设置有其适用于开发或测试环境,但在生产环境中需要快速定位和协调不同节点的情况下,这些默认设置是不够安全和可靠的。 在生产环境中,至少需要配置一个发现参数。以下是对这三个常见参数的解释: - discovery.seed_hosts 代表节点的主机名或 IP 地址。这是最常见的同步集群配置,每个节点之间通过配置设置为互相知道对方的主机名或 IP 地址。这需要用户手动列出完整的集群节点列表,并且每个节点都需要手动完成相同的配置工作。相对于下面两个参数,这种配置设置起来比较容易。 - discovery.seed_providers 参数则可能会自动检测其他可用的 seed_hosts,尤其是那些可以帮助您更快地启动集群的节点。该参数下面还有更多的选项,适合多样化的实际场景。 - cluster.initial_master_nodes 可以实现自动集群配置。初始化它将在群集中选择一个新主机来跟踪。设置参数将导致发现节点在启动时带有此参数设置。这个参数可能不太实用,但是比其它两个更为简单方便。 总的来说,发现设置在生产环境中是至关重要的。正确的配置可以帮助加快集群的启动速度,提高稳定性和可靠性。而无论是使用哪个参数,都应该根据实际需求进行选择和定制。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值