服务器上的Python进度条为每个用户

时间:2012-10-05 22:06:46

标签: python webserver

我正在尝试实现这样的功能:

我会运行服务器,然后用户会来到服务器并提交他们的工作(我只需要按顺序运行作业)。每个工作都需要很长时间才能完成,并且每个工作都有很多状态(比如已经下载了多少推文等),我希望将状态呈现给用户。我正在将作业对象实现为一个类,即

Class Job:
   def __init__():
      initial status
   def do_download():
      do download 
   def report_status():
      return [self.tweets_downloaded, self.bad_tweets...]

但是,我有点被困在这里,因为在服务器运行do_download()时我无法调用'report_status()'。有人有什么建议吗?我很感激。

我最终使用线程来执行“do_download”功能。在主线程中只需调用“report_status”,它就会告诉我作业的工作状态。

2 个答案:

答案 0 :(得分:2)

使用Celery或其他任务排队系统。您的所有作业都将在不同的进程中运行(不必担心线程安全或GIL),并且可以根据需要随时更新中央数据存储。

答案 1 :(得分:0)

在线程中执行长时间运行的作业,更新在report_status中扫描的某些status.txt文件