XxlJobAgentScheduler
public class XxlJobAgentScheduler implements AgentScheduler
io/agentscope/extensions/scheduler/xxljob/XxlJobAgentScheduler.java:114–391Xxl 作业智能体调度器,承载智能体的部署、调度与服务化运行。位于 io.agentscope.extensions.scheduler.xxljob 包,实现 AgentScheduler。核心成员包括 schedule、cancel、getScheduledAgent、getAllScheduleAgentTasks、shutdown、getSchedulerType。
AgentScheduler implementation based on XXL-Job distributed task scheduling platform.
This scheduler integrates with XXL-Job to provide distributed scheduling capabilities for agents. Jobs are registered as JobHandlers in XXL-Job and can be managed through the XXL-Job admin console.
Key Features:
-
Distributed scheduling across multiple executor instances
-
Centralized management through XXL-Job admin console
-
Support for cron expressions, fixed rate, and manual triggers
-
Built-in monitoring and logging
-
Fault tolerance and automatic failover
Prerequisites:
-
XXL-Job admin server must be running and accessible
-
XxlJobExecutor must be properly initialized and started
-
Jobs must be configured in XXL-Job admin console with matching JobHandler names
Usage Example:
`// 1. Initialize XXL-Job executor (typically in Spring Boot configuration)
XxlJobExecutor executor = new XxlJobExecutor();
executor.setAdminAddresses("http://localhost:8080/xxl-job-admin");
executor.setAppname("agentscope-executor");
executor.setPort(9999);
executor.start();
// 2. Create scheduler
AgentScheduler scheduler = new XxlJobAgentScheduler(executor);
// 3. Create agent configuration
AgentConfig agentConfig = AgentConfig.builder()
.name("MyAgent")
.description("My scheduled agent")
.agentFactory(() -> ReActAgent.builder()
.name("MyAgent")
.model(model)
.toolkit(toolkit)
.build())
.build();
// 4. Schedule the agent
ScheduleConfig scheduleConfig = ScheduleConfig.builder().build();
ScheduleAgentTask task = scheduler.schedule(agentConfig, scheduleConfig);
// 5. Configure the job in XXL-Job admin console:
// - JobHandler: MyAgent (same as agent name)
// - Schedule type: CRON
// - Cron expression: 0 0 8 * * ?
// 6. The agent will be executed according to the schedule in XXL-Job
// Each execution will create a fresh Agent instance
`
Important Notes:
-
The agent name from AgentConfig is used as the JobHandler name in XXL-Job
-
Each execution creates a fresh Agent instance using the configured factory
-
Schedule configuration (cron, fixedRate, fixedDelay) is managed in XXL-Job admin console
-
This scheduler only registers the JobHandler; actual scheduling is controlled by XXL-Job
-
Pause/resume operations are not directly supported; use XXL-Job admin console instead
构造器摘要Constructor Summary
| 构造器Constructor | 说明Description |
|---|---|
public XxlJobAgentScheduler(XxlJobExecutor executor) | 初始化 `XxlJobAgentScheduler` 实例。 Constructor for XxlJobAgentScheduler. |
方法摘要Method Summary
| 方法Method | 说明Description |
|---|---|
public ScheduleAgentTask schedule(AgentConfig agentConfig) | 设置调度。 Schedule an agent with default schedule configuration (NONE mode). |
public ScheduleAgentTask schedule(AgentConfig agentConfig, ScheduleConfig scheduleConfig) | 执行调度相关操作。 Performs the schedule operation. |
public boolean cancel(String name) | 执行取消相关操作。 Cancel a scheduled task. |
public ScheduleAgentTask getScheduledAgent(String name) | 获取已调度智能体。 Retrieve a scheduled task by its name. |
public List<ScheduleAgentTask> getAllScheduleAgentTasks() | 获取所有调度智能体任务。 Retrieve all scheduled tasks managed by this scheduler. |
public void shutdown() | 关闭资源并释放连接。 Gracefully shutdown the scheduler. |
public String getSchedulerType() | 获取调度器类型。 Get the type identifier of this scheduler implementation. |
构造器详情Constructor Detail
XxlJobAgentScheduler
public XxlJobAgentScheduler(XxlJobExecutor executor)
初始化 XxlJobAgentScheduler 实例。
Constructor for XxlJobAgentScheduler.
| 名称Name | 类型Type | 说明Description |
|---|---|---|
executor | XxlJobExecutor | XXL-Job 执行器实例(必须为已初始化和已启动)。The XXL-Job executor instance (must be initialized and started) |
io/agentscope/extensions/scheduler/xxljob/XxlJobAgentScheduler.java:126–132方法详情Method Detail
schedule
public ScheduleAgentTask schedule(AgentConfig agentConfig)
设置调度。
Schedule an agent with default schedule configuration (NONE mode).
| 名称Name | 类型Type | 说明Description |
|---|---|---|
agentConfig | AgentConfig | 智能体配置(可以为 AgentConfig 或 RuntimeAgentConfig)。The agent configuration (can be AgentConfig or RuntimeAgentConfig) |
ScheduleAgentTaskio/agentscope/extensions/scheduler/xxljob/XxlJobAgentScheduler.java:144–146schedule
public ScheduleAgentTask schedule(AgentConfig agentConfig, ScheduleConfig scheduleConfig)
执行调度相关操作。
Performs the schedule operation.
| 名称Name | 类型Type | 说明Description |
|---|---|---|
agentConfig | AgentConfig | 智能体配置(类型 `AgentConfig`)。The agent config. |
scheduleConfig | ScheduleConfig | 调度配置(类型 `ScheduleConfig`)。The schedule config. |
ScheduleAgentTaskio/agentscope/extensions/scheduler/xxljob/XxlJobAgentScheduler.java:148–233cancel
public boolean cancel(String name)
执行取消相关操作。
Cancel a scheduled task.
| 名称Name | 类型Type | 说明Description |
|---|---|---|
name | String | 已调度任务到取消的名称。The name of the scheduled task to cancel |
booleanUnsupportedOperationException可能抛出 `UnsupportedOperationException`。always, as cancellation is not supported
io/agentscope/extensions/scheduler/xxljob/XxlJobAgentScheduler.java:299–304getScheduledAgent
public ScheduleAgentTask getScheduledAgent(String name)
获取已调度智能体。
Retrieve a scheduled task by its name.
| 名称Name | 类型Type | 说明Description |
|---|---|---|
name | String | 名称(类型 `String`)。The name of the scheduled task (same as agent name) |
ScheduleAgentTaskio/agentscope/extensions/scheduler/xxljob/XxlJobAgentScheduler.java:312–318getAllScheduleAgentTasks
public List<ScheduleAgentTask> getAllScheduleAgentTasks()
获取所有调度智能体任务。
Retrieve all scheduled tasks managed by this scheduler.
List<ScheduleAgentTask>io/agentscope/extensions/scheduler/xxljob/XxlJobAgentScheduler.java:325–328shutdown
public void shutdown()
关闭资源并释放连接。
Gracefully shutdown the scheduler.
io/agentscope/extensions/scheduler/xxljob/XxlJobAgentScheduler.java:342–348getSchedulerType
public String getSchedulerType()
获取调度器类型。
Get the type identifier of this scheduler implementation.
Stringio/agentscope/extensions/scheduler/xxljob/XxlJobAgentScheduler.java:355–358