iis部署django框架,使用celery无命令窗口运行

有两种方法,一种是vbs文件,一种是直接用bat文件

  1. vbs文件,网上说可以,但是我试了没成功
     
    Set ws = CreateObject("Wscript.Shell")
    
    ws.run "cmd /c 批处理程序名",vbhide
    这里的“批处理程序名”就是下面bat文件物理地址。我试了发现不行,具体原因也没找到。
    1. 用bat文件
       

      1、在桌面新建一个text文件。写入以下:

      @echo off
      
      if "%1"=="h" goto begin
      
      start mshta vbscript:createobject("wscript.shell").run("""%~nx0"" h",0)(window.close)&&exit
      
      :begin
       
      pipenv run celery -A workjob worker --loglevel=info -P eventlet -c 10
      

      其中,pipenv run celery -A workjob worker --loglevel=info -P eventlet -c 10为你自己的celery启动命令,有不同的Router,或者多个task可以使用 & 符号 继续往第一行后边加可以把你所有需要终端启动的命令都写上去。
              注意:这里我用的虚拟环境是pipenv,所以需要在虚拟环境里面处理celery命令
      其中的前半部分就是隐藏窗口用的,在begin后面加自己要处理的cmd命令

      @echo off

      if "%1"=="h" goto begin

      start mshta vbscript:createobject("wscript.shell").run("""%~nx0"" h",0)(window.close)&&exit

      :begin

      之后将此文件的后缀改为 .bat 。(我这里将这个文件命名为 start_celery.bat)
      2、在此同样的再次创建个新的bat文档,用于启动celery的beat任务,我这里将这个文件命名为 start_beat.bat

      @echo off
      
      if "%1"=="h" goto begin
      
      start mshta vbscript:createobject("wscript.shell").run("""%~nx0"" h",0)(window.close)&&exit
      
      :begin
      
      pipenv run celery -A workjob beat -l info
      


      3、这里推荐创建再通过一个新的bat来启动这个bat脚本。创建一个新的start.bat脚本,写入如下:

  2. @echo off 
    start cmd /k "E:\Python\start_celery.bat"
    start cmd /k "E:\Python\start_beat.bat"


    直接运行 start.bat 就可以直接运行celery。到这里你会发现,这个bat脚本已经将你的celery用一个新的终端窗口运行起来了(这一步仅用于调试。这一步要确保你的celery被正常的启动,可以测试发起一个异步任务,确保异步任务没有问题之后。关掉终端)。
     

你可能感兴趣的:(python3,django,python,后端)