当前位置: 首页 > 知识库问答 >
问题:

如何将yaml属性传递给优步Cadence cronSchedule注释

辛星宇
2023-03-14

我是uber Cadence的新手,尝试编写一个cron调度任务。Cadence提供了一个cron附表注释(在网上找个例子),它需要一个cron表达式字符串,用于在特定时间触发方法。但是,我想让这个cron表达式按照我们在yml文件中设置的来加载。有什么方法可以做到吗?我目前只找到了这个@cron附表注释的方法来做。我还发现有一个Workflow Option可以设置cron附表。但是,不知道如何使用它来触发方法。下面是当前的代码。

public interface CronTask {


    @WorkflowMethod(
            workflowId = CRON_WORKFLOW_ID,
            taskList = TASK_LIST,
            executionStartToCloseTimeoutSeconds = 30,
            workflowIdReusePolicy = WorkflowIdReusePolicy.TerminateIfRunning
    )
    @CronSchedule("*/1 * * * *") 
    void kickOff(String name);
}

如果没有办法做到这一点。有人知道我们是否可以简单地用spring @Scheduled替换这个< code>@CronSchedule注释吗?批注< code>WorkflowMethod是否仍能按预期工作?

共有1个答案

方德宇
2023-03-14

在时态中,您可以通过工作流选项来执行此操作:

    WorkflowOptions workflowOptions =
        WorkflowOptions.newBuilder()
            .setWorkflowId(WORKFLOW_ID)
            .setTaskQueue(TASK_QUEUE)
            .setCronSchedule("* * * * *")
            .setWorkflowExecutionTimeout(Duration.ofMinutes(3))
            .setWorkflowRunTimeout(Duration.ofMinutes(1))
            .build();

    // Create the workflow client stub. It is used to start our workflow execution.
    GreetingWorkflow workflow = client.newWorkflowStub(GreetingWorkflow.class, workflowOptions);

我相信卡登斯也有类似的能力。

 类似资料:
  • 假设我有一个带有属性的注释: 我想创建一个包含多个元注释的复合注释,包括一个带有属性的注释 有没有一种方法可以将复合注释的属性传递给其中一个元注释? 例如,类似这样的东西: 这相当于,但比 谢谢! PS为我对示例注释的错误选择表示歉意-我没有javax。注射@记住命名注释,只是一些具有属性的任意注释。 谢谢大家的回答/评论。 这显然是不可能的。然而,碰巧我的案例有一个简单的解决方法,我将与大家分享

  • 问题内容: 我有一个属性指令,其限制如下: 我需要传递两个属性;一个数字和一个函数/回调,使用对象在指令中访问它们。 如果指令是元素指令,那么我可以限制为: 但是,出于某种原因,我不再赘述,我需要将该指令作为属性指令。 如何将多个属性传递到属性指令中? 问题答案: 该指令可以访问在同一元素上定义的任何属性,即使该指令本身不是该元素也是如此。 模板: 指示: 如果attribute的值将被硬编码,则

  • 问题内容: 这是我的问题: 当我用JavaScript编写此代码时 // 好: 但是,当我尝试在属性标签中动态设置该值时,没有任何执行。 // 不好: 有人可以帮我吗? 问题答案: Struts标签,例如JSTL,EL等,是在服务器端执行的。执行完所有这些步骤后,仅HTML的最终页面将呈现给客户端。只有这样,JavaScript才能在页面上运行。 您不能混合使用javascript和Struts标

  • 问题内容: 这是我的问题: 当我用JavaScript编写此代码时 // 好: 但是,当我尝试在属性标签中动态设置该值时,没有任何执行。 // 不好: 有人可以帮我吗? 问题答案: Struts标签,例如JSTL,EL等,是在服务器端执行的。执行完所有这些步骤后,仅HTML的最终页面将呈现给客户端。只有这样,JavaScript才能在页面上运行。 您不能混合使用javascript和Struts标

  • 我正在使用gradle tooling api,我遇到了下面的场景。有一个应用某个插件P的项目,它只在传递shouldApplyP属性时才创建任务T。 因此,如果您将运行,您将看不到任务T,但是如果您将运行,您将看到任务T。 在gradle tooling api中,一旦创建了,我就可以执行 但我看不到这个具体的任务。是否有方法将此属性传递给项目连接,以便在方法中显示该属性?

  • 我有接口资源和实现它的几个类,例如音频、视频...此外,我创建了带有类类型参数的自定义注释MyAnnoection: 在代码的其他地方,我必须使用接口资源作为返回类型: 问题是如何根据将返回的资源类型适当地注释注释@其他注释?