Cron 运行计划作业的最佳方式是什么

Cron 运行计划作业的最佳方式是什么,cron,jobs,Cron,Jobs,我有一个包含两部分的项目:第一部分是FlaskAPI,第二部分是应该安排的脚本。 Flask应用程序通过在Openshift中运行的docker映像提供 我的问题是第二个脚本应该安排在哪里。我可以访问Gitlab CI/CD,但这并不是它真正的目的。 构建docker映像并在Openshift上运行它也是不可能的,因为如果POD超过1,它将运行比需要更多的时间。 我考虑的唯一选择就是使用带有cron的常规服务器 你有更好的解决办法吗 谢谢你的问题有几个方面,有几种方法可以解决,我会给你一些从哪里

我有一个包含两部分的项目:第一部分是FlaskAPI,第二部分是应该安排的脚本。 Flask应用程序通过在Openshift中运行的docker映像提供

我的问题是第二个脚本应该安排在哪里。我可以访问Gitlab CI/CD,但这并不是它真正的目的。 构建docker映像并在Openshift上运行它也是不可能的,因为如果POD超过1,它将运行比需要更多的时间。 我考虑的唯一选择就是使用带有cron的常规服务器

你有更好的解决办法吗


谢谢

你的问题有几个方面,有几种方法可以解决,我会给你一些从哪里开始的简要信息

肾盂道 您可以部署芹菜工人,该工人将处理计划的作业。您可以查看芹菜文档,了解如何在python中进行计算:

您可能已经掌握了如何从扩展部署以支持芹菜,这显示了芹菜的完整部署:

apiVersion: apps/v1beta2
kind: Deployment
metadata:
  name: celery-worker
  labels:
    deployment: celery-worker
spec:
  replicas: 1
  selector:
    matchLabels:
      pod: celery-worker
  template:
    metadata:
      labels:
        pod: celery-worker
    spec:
      containers:
        - name: celery-worker
          image: backend:11
          command: ["celery", "worker", "--app=backend.celery_app:app", "--loglevel=info"]
          env:
            - name: DJANGO_SETTINGS_MODULE
              value: 'backend.settings.minikube'

            - name: SECRET_KEY
              value: "my-secret-key"

            - name: POSTGRES_NAME
              value: postgres

            - name: POSTGRES_USER
              valueFrom:
                secretKeyRef:
                  name: postgres-credentials
                  key: user

            - name: POSTGRES_PASSWORD
              valueFrom:
                secretKeyRef:
                  name: postgres-credentials
                  key: password
库伯内特斯路 在Kubernetes(Openshift是Kubernetes的一个发行版)中,您可以创建一个cronjob,它将按照计划执行特定的任务,类似于以下内容:

kubectl run --generator=run-pod/v1 hello --schedule="*/1 * * * *" --restart=OnFailure --image=busybox -- /bin/sh -c "date; echo Hello from the Kubernetes cluster"
我把它拔了出来

云道 您还可以使用无服务器平台(例如AWS Lambda)执行计划作业。AWS Lambda的酷之处在于,它们的免费层对于您的用例来说已经足够了

见美国焊接学会