设置2个cron作业,每10分钟运行一次,但不要在彼此之上运行

时间:2016-03-12 13:37:02

标签: cron server

我可以像这样每隔十分钟设置一个cron:

*/10 * * * *

但是我想设置2个不会同时运行的cron作业。

是否可以像这样每10分钟运行一次:

12.00, 12.10, 12.20, 12.30, 12.40...

另一个运行:

12.05, 12.15, 12.25, 12.35, 12.45...

所以两者都是每10分钟运行一次,如果有意义的话,就不会完全同时运行。

3 个答案:

答案 0 :(得分:2)

您可以安排它们以10分钟的周期开始相隔5分钟。

从整个小时开始每10分钟运行一次,你可以使用;

0/10 * * * * 

...代表0, 10, 20, 30, 40, 50

从每小时5点开始每10分钟运行一次;

5/10 * * * * 

...代表5, 15, 25, 35, 45, 55

答案 1 :(得分:1)

重复:How can I run a cron job every 5 minutes starting from a time other than 0 minutes?

您可以查看第一个答案:https://stackoverflow.com/a/16094616/1079254

另一个简单的解决方案是列出您想用逗号隔开的所有分钟数:

class GetOriginalTitleAndNameTestCase(TestCase):

    @mock.patch('app.utils.requests.get')
    def test_get_original_title_and_name_from_google_api(self, mock_get):
        mock_response = mock.Mock()
        # Define response data from Google API
        expected_dict = {
            'kind': 'books#volumes',
            'totalItems': 1,
            'items': [
                {
                    'kind': 'books#volume',
                    'id': 'IHxXBAAAQBAJ',
                    'etag': 'B3N9X8vAMWg',
                    'selfLink': 'https://www.googleapis.com/books/v1/volumes/IHxXBAAAQBAJ',
                    'volumeInfo': {
                        'title': "Alice's Adventures in Wonderland",
                        'authors': [
                            'Lewis Carroll'
                        ]
                    }
                }
                    ]
            }

        # Define response data for my Mock object
        mock_response.json.return_value = expected_dict
        mock_response.status_code = 200

        # Define response for the fake API
        mock_get.return_value = mock_response

        # Call the function
        result = get_original_title_and_name(12345)

        self.assertEqual(result, {
            'title': "Alice's Adventures in Wonderland", 
            'author': 'Lewis Carroll'
        })
        mock_get.assert_called_once_with(GOOGLE_API_URL, params={
            'key': GOOGLE_API_KEY,
            'q': 'isbn:12345',
            'printType': 'books',
        })

我认为这种语法对于人类来说更容易理解,并且应该可以在每个cron软件中使用。

答案 2 :(得分:0)

为什么不制作5米长的cronjob,脚本在每次执行时从一个切换到另一个?

我会做什么如果可能的话。祝你好运!