1

我能够在 PCF 上部署一个 .net 核心控制台应用程序,它会引发一些内部事件并运行一段时间(在 Thread.Delay() 的帮助下)并退出。我希望能够使用 Windows 机器上的批处理文件远程启动和停止此应用程序。

当我将此应用程序推送到 PCF 时,我已在推送命令中明确放置--no-start标志。该应用程序已部署但无法启动,我可以使用cf start命令远程启动它。一旦它成功退出,PCF 会尝试重新启动它,认为它已经崩溃,所以为了重新启动,我首先需要cf stop然后使用 start 命令。

我需要帮助来理解 - 如果还有其他更好的方法可以做到这一点。最初我们计划在 PCF 上使用 Tasks;但据我了解,任务是在其他应用程序上运行的命令(如果我错了,请纠正我)

任何想法都会有所帮助。提前致谢。

4

1 回答 1

1

我修改了我的应用程序逻辑来实现这一点。我做了以下 -

  • 使用--no-start标志部署的应用程序
  • 在应用程序入口方法中,我检查了从命令行传递的 arg 的值
  • 如果 arg==required_key 然后运行作业,否则返回
  • 我做了一个 cf start 构建,暂存应用程序并且应用程序启动但没有结果显示在控制台上
  • cf 停止
  • cf run-task APP_NAME "dotnet appname.dll required_key"

上述任务运行一次并自行销毁。

于 2017-09-14T08:38:24.113 回答