Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/spring/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何从vuejs触发spring批处理执行_Spring_Vue.js_Spring Batch_Execution - Fatal编程技术网

如何从vuejs触发spring批处理执行

如何从vuejs触发spring批处理执行,spring,vue.js,spring-batch,execution,Spring,Vue.js,Spring Batch,Execution,我试图从端点触发spring批处理执行。我已经在后端实现了一个服务。因此,我尝试从Vue调用该端点 异步触发器(数据){ let response=等待Axios.post(“”) console.log(response.data.message) } 后端的我的服务返回一个响应“Batch started”,并在后台执行,因为它是异步的,但在作业执行后不会返回(我只在控制台中看到状态)。在这种情况下,如何等待vue的调用以完成服务执行。我理解一旦执行完成/失败,服务将不发送响应。我需要在后

我试图从端点触发spring批处理执行。我已经在后端实现了一个服务。因此,我尝试从Vue调用该端点

异步触发器(数据){ let response=等待Axios.post(“”) console.log(response.data.message) }
后端的我的服务返回一个响应“Batch started”,并在后台执行,因为它是异步的,但在作业执行后不会返回(我只在控制台中看到状态)。在这种情况下,如何等待vue的调用以完成服务执行。我理解一旦执行完成/失败,服务将不发送响应。我需要在后端或前端进行任何更改以支持此功能。请告诉我您的想法。

正如您所说,后端服务是异步的,这意味着一旦代码被执行,它就会移动到下一行。如果没有下一行退出,则函数存在,脚本关闭,服务器向前端发送一个空响应

你的选择是:

  • 实现一个websocket,该websocket在服务完成时进行广播,并改用它
  • 使用超时功能监视服务内指示服务已完成其职责的标志更改,或
  • 不要使用异步服务
  • 如何等待vue的调用以完成服务执行

    我不建议这样做,因为这项工作可能需要很长时间才能完成,而且您不希望您的web客户端等待那么长时间才能得到答复。当配置了异步任务执行器时,作业启动器会立即返回一个作业执行,该作业执行带有一个Id,您可以稍后检查该Id


    请查看以了解更多详细信息和代码示例。

    我的建议是,您应该进行作业状态的前端查询,而不是等待作业完成并响应,因为作业可能需要很长时间才能完成

    触发作业启动的API应返回作业ID,您可以在
    jobsecution
    对象中获取作业ID。调用
    JobLauncher.run
    时返回此对象

    然后在后端实现一个查询API,以按作业ID获取作业的状态。您可以使用Spring
    JobExplorer
    实现这一点


    然后,前端可以调用此查询API以获取作业状态。您应该每隔一段时间(例如30秒、5分钟等,具体取决于您的工作)。这将防止您的应用程序陷入等待作业和超时错误的状态。

    My service在启动时启动流程,并发送响应“job started”(作业已启动),然后在后台移动以进一步执行,此时服务当前未提供响应,这就是实现的方式。因此,我无法触摸后端服务如果您无法触摸后端服务,则您无法在此进行任何调整以支持您的请求。谢谢。我将使用这些选项查看后端