Django Cron软件包最新版本未在指定的时间运行

问题描述

我在docker容器中使用Django Cron package,在其中我指定了cron函数,如下所示:

class CreateSnapshots(CronJobBase):
    RUN_EVERY_MINS = 15  # every 15 mins

    schedule = Schedule(run_every_mins=RUN_EVERY_MINS)
    code = 'crontab.cronjobs.CreateSnapshots' 

    def do(self):
        print("Running CreateSnapshots Now..")

在用于Kubernetes的docker-entrypoint.sh中,我指定了这一点:

python manage.py runcrons

cronjob不会按照指示每隔15分钟运行一次,但是当我在容器重击中执行python manage.py runcrons时,cronjob会立即运行。知道为什么它不能按规定每15分钟运行一次吗?或我缺少的配置?

我已在我的settings.py中指定了此名称

CRON_CLASSES = [
    "crontab.cronjobs.CreateSnapshots",]

我的Kubernetes部署规范:

apiVersion: extensions/v1beta1
kind: Deployment
Metadata:
  annotations:
    kompose.cmd: kompose convert -f docker-compose.yml
    kompose.version: 1.14.0 (fa706f2)
  creationTimestamp: null
  labels:
    io.kompose.service: cronjobs
  name: cronjobs
spec:
  replicas: 1
  strategy:
    type: Recreate
  template:
    Metadata:
      creationTimestamp: null
      labels:
        io.kompose.service: cronjobs
    spec:
      imagePullSecrets:
      - name: mycompregcred
      containers:
      - args:
        - python
        - manage.py
        - runserver
        - 0.0.0.0:8003
        image: eu.gcr.io/my-project-123/cronjobs
        name: cronjobs
        ports:
        - containerPort: 8003
        resources: {}
        volumeMounts:
        - mountPath: /cronjobs
          name: cronjobs-claim0
        - mountPath: /cronjobs/common
          name: cronjobs-claim1
      restartPolicy: Always
      volumes:
      - name: cronjobs-claim0
        persistentVolumeClaim:
          claimName: cronjobs-claim0
      - name: cronjobs-claim1
        persistentVolumeClaim:
          claimName: cronjobs-claim1
status: {}

还有我的docker-compose.yaml的cronjob应用程序部分:

  cronjobs:
    image: cronjobs
    build: ./cronjobs
    depends_on:
      - db

我完整的docker-entrypoint.sh看起来像这样:

#!/bin/sh

wait-for-it db:5432
python manage.py collectstatic --no-input
python manage.py migrate django_cron
python manage.py runcrons

gunicorn cronjobs.wsgi -b 0.0.0.0:8000

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)