亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

如何使用環境變量來使用 apscheduler 設置類似 cron 的計劃?

如何使用環境變量來使用 apscheduler 設置類似 cron 的計劃?

慕神8447489 2023-09-26 14:13:41
我已經整理了一個用 Python 編寫的 ETL 作業。我必須在不同的環境(LOCAL、DEV、TST、PROD)中運行它,因此我需要找到一種使用環境變量設置作業計劃的方法,以便我可以為每個環境設置不同的計劃,而無需從一個環境接觸代碼其他。今天我使用的是 apscheduler。我的代碼中有類似這樣的內容:from apscheduler.schedulers.blocking import BlockingSchedulerdef etl_job():sched = BlockingScheduler(daemon=True)sched.add_job(etl_job,'interval',minutes=7)sched.start()現在有人知道解決這個問題嗎?謝謝!
查看完整描述

2 回答

?
喵喵時光機

TA貢獻1846條經驗 獲得超7個贊

這是我解決這個問題的方法:

環境變量(json格式)

schedule='{"jobsSchedule": [{"job_name": "job_1","schedule": "*/1 * * * *"},{"job_name":"job_2","schedule": "*/2 * * * *"}]}'

讀取環境變量

jobCrontabSchedule = json.loads(os.getenv('schedule'))

安排每一項工作

for job in jobCrontabSchedule['jobsSchedule']:
    print ("Scheduling the job: "+job['job_name']+" with the schedule: "+job['schedule'])   
    sched.add_job(globals()[job['job_name']], CronTrigger.from_crontab(job['schedule']))


查看完整回答
反對 回復 2023-09-26
?
汪汪一只貓

TA貢獻1898條經驗 獲得超8個贊

設置環境變量并使用 python 讀取它的示例(我假設這就是您所要求的)。

export INTERVAL=5

import os
print(os.environ.get("INTERVAL"))

但是,您可能需要記住以下幾點:

  • 從一個操作系統到另一個操作系統設置環境變量會有所不同

  • 確保您為運行流程的同一用戶設置變量

  • 確保在跨環境移動時配置這些變量的遷移


查看完整回答
反對 回復 2023-09-26
  • 2 回答
  • 0 關注
  • 149 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號