Python-每个月的第一个星期一运行作业

时间:2019-06-30 11:38:02

标签: python cron schedule

背景: 我需要在服务器的每个月的第一个和第三个星期一运行自动任务。 应该通过python而不是crontab来实现。

我找到了python模块“ schedule”,但未详细说明其文档。 https://pypi.org/project/schedule/

https://schedule.readthedocs.io/en/stable/

有人知道该怎么做吗?

import schedule

def TestFunction():
    pass

schedule.every(1).monday.do(TestFunction)
schedule.every(3).monday.do(TestFunction)
schedule.run_pending()

这将在每年,每月或每个星期一的第一个星期一执行吗?

2 个答案:

答案 0 :(得分:3)

这是一个可能的解决方案:

import datetime

def something():
    day_of_month = datetime.now().day
    if (day_of_month > 7 and day_of_month < 15) or day_of_month > 21:
        return # not first / third monday of month
    # your code

schedule.every().monday.do(something())

计划程序将在每个星期一运行,但是如果return不是该月的第一个/第三个星期一,我们将package app.com.youtubeapiv3.fragments; import android.os.Bundle; import android.support.v4.app.Fragment; import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; import android.webkit.WebSettings; import app.com.youtubeapiv3.R; /** * A simple {@link Fragment} subclass. */ public class WebView extends Fragment { public WebView() { // Required empty public constructor } @Override public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { View v = inflater.inflate(R.layout.fragment_web_view, container, false); WebView mWebView = (WebView) v.findViewById(R.id.webview); mWebView.loadUrl("https://google.com"); // Enable Javascript WebSettings webSettings = mWebView.getSettings(); webSettings.setJavaScriptEnabled(true); return v; } } 运行。

答案 1 :(得分:1)

目前看来,此功能尚未在../src/scss/global.scss软件包中实现:

schedule

我建议使用schedule.every(3).monday.do(test) Traceback (most recent call last): File "<input>", line 1, in <module> File "/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/site-packages/schedule/__init__.py", line 302, in monday raise IntervalError('Use mondays instead of monday') schedule.IntervalError: Use mondays instead of monday >>> schedule.every(3).mondays.do(test) Traceback (most recent call last): File "<input>", line 1, in <module> AttributeError: 'Job' object has no attribute 'mondays' 循环,并手动检查当天是否是该月的第一个星期一:

while True