python利用cmd定时重启django服务器

14 篇文章 0 订阅
问题描述:服务器是32位的,所以python会出现memoryerror的问题,由于没有办法短期内更换到64位系统,所以就只能用这个办法,把服务定时重启,让内存不会溢出
用到了批处理

之前用的是 subprocess  .kill 出现杀不掉的情况

问题出在kill的是cmd命令,而不是python执行后的结果

所以需要根据占用端口,获取真正的python-django的pid

@echo off  kill8000.bat
set port=8000
for /f "tokens=1-5" %%i in ('netstat -ano^|findstr "0.0.0.0:%port%"') do (
    echo kill the process %%m who use the port %port%
    taskkill /F /pid %%m
)

#encoding:utf-8
  
import os  
import subprocess
import time
from multiprocessing import Process  


def main():  
    while True:
        p = subprocess.Popen("python manage.py runserver 0.0.0.0:8000 ")
        #p=os.system("python manage.py runserver 0.0.0.0:8000")
        time.sleep(60*60*3)
        #p.terminate() 
        #cmd = "taskkill /F /pid:"+str(p.pid)
        cmd="kill8000.bat"
        os.system(cmd)
main()

  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
Django 中,可以使用 Celery 和 Django-celery-beat 库来实现周期定时任务。 步骤如下: 1. 安装 Celery 和 Django-celery-beat 库: ```python pip install celery pip install django-celery-beat ``` 2. 在 Django 的 settings.py 文件中配置 Celery: ```python # settings.py # Celery 配置 CELERY_BROKER_URL = 'amqp://guest@localhost//' CELERY_ACCEPT_CONTENT = ['application/json'] CELERY_RESULT_BACKEND = 'django-db' CELERY_TIMEZONE = 'Asia/Shanghai' ``` 3. 在 Django 的 settings.py 文件中添加 Django-celery-beat 应用: ```python # settings.py INSTALLED_APPS = [ # ... 'django_celery_beat', ] ``` 4. 在 Django 的 urls.py 文件中添加 Celery 的 beat 路由: ```python # urls.py from django.urls import path from django_celery_beat.views import Beat urlpatterns = [ # ... path('celery-beat/', Beat.as_view(), name='celery-beat'), ] ``` 5. 在 Django 的任意位置创建一个 tasks.py 文件,并定义周期任务: ```python # tasks.py from celery import shared_task from datetime import datetime @shared_task def test_task(): print('当前时间:', datetime.now().strftime('%Y-%m-%d %H:%M:%S')) ``` 6. 在 Django 的 settings.py 文件中配置周期任务: ```python # settings.py CELERY_BEAT_SCHEDULE = { 'test_task': { 'task': 'tasks.test_task', 'schedule': 30.0, # 每 30 秒执行一次 }, } ``` 7. 启动 Celery: ```python celery -A your_project_name worker -l info celery -A your_project_name beat -l info ``` 8. 访问 http://127.0.0.1:8000/celery-beat/ 可以查看周期任务的执行记录。 注意:以上步骤中的 your_project_name 需要替换为你的项目名。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值