You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何通过Apex Scheduler实现每日12点自动创建汇率相关对象

使用Apex Scheduler实现每日12点自动执行汇率同步

步骤1:创建实现Schedulable接口的调度类

编写一个实现Schedulable接口的Apex类,在execute方法中调用你已有的currencyConverter静态方法。建议添加异常处理,避免任务因异常中断,同时记录错误信息便于排查。

示例调度类代码:

public class DailyCurrencySyncScheduler implements Schedulable {
    public void execute(SchedulableContext sc) {
        try {
            // 调用你已有的汇率转换方法,替换YourExistingClass为实际类名
            YourExistingClass.currencyConverter();
        } catch (Exception e) {
            // 记录错误日志到Log__c对象
            Log__c errorLog = new Log__c(
                Status_Code__c = 'ERROR',
                Response_Body__c = '调度任务执行失败: ' + e.getMessage() + '\n' + e.getStackTraceString()
            );
            insert errorLog;
            // 抛出异常标记任务失败
            throw new SchedulableException('每日汇率同步任务执行失败: ' + e.getMessage());
        }
    }
}

步骤2:配置每日12点的调度任务

有两种方式创建调度任务:

方式一:通过匿名Apex代码调度

执行以下代码创建每日UTC时间12点的任务:

// Cron表达式格式:秒 分 时 日 月 周 年(留空表示每年)
// 此表达式表示每日UTC 12:00执行
String cronExpression = '0 0 12 * * ?';
System.schedule('每日汇率同步任务', cronExpression, new DailyCurrencySyncScheduler());

若需使用非UTC时区(比如北京时间),需先转换为UTC时间再调整表达式。例如北京时间12点对应UTC 4点,表达式改为0 0 4 * * ?

方式二:通过Salesforce界面配置

  1. 进入Setup,搜索Apex Classes
  2. 点击右上角的Schedule Apex按钮
  3. 在弹窗中配置:
    • 输入任务名称(如「每日汇率同步任务」)
    • 选择调度类DailyCurrencySyncScheduler
    • 运行频率选Weekly,并勾选所有星期几(实现每日执行)
    • 设置运行时间为目标时间(界面显示当前用户时区)
    • 保存设置

额外注意事项

  • 确保currencyConverter方法中的endPoint是全局可访问的(比如用静态常量定义),避免调度类无法读取
  • Salesforce调度任务存在±15分钟的执行延迟,属于平台正常机制
  • 可在Setup的Scheduled Jobs页面查看、编辑或删除已创建的任务

内容的提问来源于stack exchange,提问作者Jhony

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.04 21:25:13