背景: 我需要在服务器的每个月的第一个和第三个星期一运行自动任务。 应该通过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()
这将在每年,每月或每个星期一的第一个星期一执行吗?
答案 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