栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Python

django动态配置环境dynaconf + crontab定时任务脚本

Python 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

django动态配置环境dynaconf + crontab定时任务脚本

1、动态配置:上一篇分享过了,贴个链接:CSDNhttps://mp.csdn.net/mp_blog/creation/editor/122606790

2、linux的crontab定时任务 :

CSDNhttps://mp.csdn.net/mp_blog/creation/editor/1207335073、任务sh脚本:

#!/bin/sh
# 进入当前脚本文件夹,确保django导包初始目录,pwd
cd `dirname $0`
# 虚拟环境的python相对路径,当前pwd
venv/bin/python -u ticket/auto_ticket.py > logs/auto_ticket.log 2>&1 &

4、任务具体内容.py脚本

import re
import sys
import django
import os

sys.path.extend([os.getcwd()])
# 因为shell脚本里面不能读取到系统变量,采用遍历匹配方法查找配置
env_for_dynaconf = 'DEFAULT'
with open('/root/.bashrc') as file_obj:
    for file_row in file_obj:
        if re.match(r'^export ENV_FOR_DYNACONF=DEVELOPMENT', file_row):
            env_for_dynaconf = 'DEVELOPMENT'

os.environ.setdefault('ENV_FOR_DYNACONF', env_for_dynaconf)

os.environ['DJANGO_SETTINGS_MODULE'] = 'book_store_miniapp_backend.settings'
django.setup()
# print(os.environ)
# print(os.environ.get('TEST'))

from ticket.models import TicketBatch
from member.models import MemberCategory
from configs.config import config as cfg
from user.models import UserProfile
from django.utils.timezone import now

auto_ticket_member_category_levels = [cfg.MEMBER.MOTH_MEMBER_LEVEL,
                                      cfg.MEMBER.YEAR_MEMBER_LEVEL]
auto_ticket_member_categories = MemberCategory.objects.filter(
    level__in=auto_ticket_member_category_levels)
auto_ticket_user_count = UserProfile.objects.filter(
    member_category__level__in=auto_ticket_member_category_levels).count()
create_user = UserProfile.objects.filter(uuid=cfg.TICKET.ADMIN_UUID).first()
base_time_str = now().strftime('%Y-%m-%d')
start_time = base_time_str + ' 00:00:00'
end_time = base_time_str + ' 23:59:59'
ticket_batch = TicketBatch.objects.create(
    ticket_name=cfg.TICKET.AUTO_TICKET_NAME,
    full_amount=cfg.TICKET.AUTO_TICKET_FULL,
    minus_amount=cfg.TICKET.AUTO_TICKET_MINUS,
    provide_sum=auto_ticket_user_count,
    remain_sum=auto_ticket_user_count,
    start_time=start_time,
    end_time=end_time,
    is_active=True,
    create_user=create_user
)
ticket_batch.member_category.set(auto_ticket_member_categories)

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/738092.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号