gpt4 book ai didi

python - 从 Linux 上的 Web 服务器在 Windows 上运行任务的最佳方式

转载 作者:太空宇宙 更新时间:2023-11-04 12:00:18 25 4
gpt4 key购买 nike

我有一个用 Python 编写的任务,运行时间为 1-2 分钟,我想按需运行。这些请求会从 Linux 上的 Django 服务器以非常小的数量发出。返回将是一个文件。

通常,我会使用像 Celery 这样的队列系统。但是,此任务只能在 Windows 上运行。

实现这一目标的最佳方法是什么?

通过建立 SSH session 远程执行任务?仍然使用 Celery,通过大量变通方法让它在 Windows 上工作(看起来很乱)?

最佳答案

我可以想到 5 个不需要 ssh 的解决方案

我没有在我的解决方案中谈论身份验证,您应该根据所选的解决方案实现一些东西

解决方案一:

  • 为运行任务并返回响应的 Windows 服务器编写一个简单的 flask/django 应用
  • 在您的 linux 服务器中向 windows 发送请求并获取数据
  • linux 服务器可以使用 celery 进行此调用,因此您无需等待 2/3 分钟

解决方案 2:

  • 为 Windows 服务器编写一个简单的 flask/django 应用程序,它在后台调用 celery 任务
    • 此应用程序应返回结果文件的 url
  • celery 任务创建一个包含结果的文件
  • 使用 nginx(或基于 windows 的静态文件服务器,我不知道 windows)提供此文件
  • 从 linux 服务器向 windows 发送请求以获取结果(如果文件不存在,则表示结果尚未准备好)

解决方案 3:

  • 为 Windows 服务器编写一个简单的 flask/django 应用程序,它在后台调用 celery 任务
    • 此应用为给定请求返回一个随机 ID
  • 从您的 linux 服务器向带有任务 ID 的 windows 应用程序发送请求
  • 当任务完成时,windows 应用返回结果

解决方案 4:

  • 为 Windows 服务器编写一个简单的 flask/django 应用程序,它在后台调用 celery 任务
  • 将端点添加到您的 linux django 应用程序以上传数据
  • 当 Windows 应用程序完成处理后,它会将数据上传到 linux django 应用程序

解决方案 5:

  • 解决方案 4 但您的 linux django 应用程序不适用于上传数据。它只设置一个 bool 值,表示任务已完成
  • 如果任务完成,linux服务器向winsows服务器发送请求获取数据(该请求包含任务id)

关于python - 从 Linux 上的 Web 服务器在 Windows 上运行任务的最佳方式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52732565/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com