Форум программистов, компьютерный форум, киберфорум
Python для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
11 / 15 / 8
Регистрация: 12.10.2011
Сообщений: 811

Запуск по расписанию

07.09.2022, 15:23. Показов 1149. Ответов 0
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Добрый день!
Есть задача, запускать скрипты 5 шт. по расписанию, при этом расписания разные, вот что смог придумать: функции запускаются с разной периодичностью в потоках, при этом нельзя запускать новый экземпляр функции если не закончил работу предыдущий.
Вопрос, все ли правильно сделал? или есть более красивое решение этой задачи?

Python
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
import datetime
import threading
import time
import schedule
from threading import Thread
 
i = 1
a = 1
num_th = ''
num_th1 = ''
 
def func2():
    global a
    ii = 0
    print(f'Функция func2 № {a} запустилась в {datetime.datetime.now()}')
    a += 1
    ii = a - 1
    time.sleep(30)
    # вывод времени чтобы проверить что все работает
    print('Завершилась func2 № ' + str(ii) +' функция 2 в ' + str(datetime.datetime.now()))
 
def func():
    global i
    print(f'Функция func № {i} запустилась в {datetime.datetime.now()} ')
    i += 1
    ii = i - 1
    time.sleep(12)
    # вывод времени чтобы проверить что все работает
    print('Завершилась func № ' + str(ii) +' функция в ' + str(datetime.datetime.now()) + f'С номером {num_th}')
 
def runf():
    global num_th
    # print(f'Номер текущего потока num_th = {num_th}')
    tth = []
    for t in threading.enumerate():
        tth.append(t.ident)
    print(f'Все потоки- {tth}')
    if num_th not in tth:
        th = Thread(target=func)
        th.start()
        num_th = th.native_id
        print(f'номер запущенного  потока в Функции func № {i} № {num_th}')
    else:
        print(f'Функция func не запущена, т.к. не завершился предыдущий экземпляр № {num_th}')
 
 
def runf1():
    global num_th1
    # print(f'Номер текущего потока num_th = {num_th1}')
    tth1 = []
    for t in threading.enumerate():
        tth1.append(t.ident)
    print(f'Все потоки- {tth1}')
    if num_th1 not in tth1:
        th1 = Thread(target=func2)
        th1.start()
        num_th1 = th1.native_id
        print(f'номер запущенного  потока в Функции func № {i} № {num_th1}')
    else:
        print(f'Функция func2 не запущена, т.к. не завершился предыдущий экземпляр № {num_th1}')
 
schedule.every(3).seconds.do(runf)
schedule.every(10).seconds.do(runf1)
 
while True:
    schedule.run_pending()
    time.sleep(1)
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
07.09.2022, 15:23
Ответы с готовыми решениями:

Запуск скрипта по расписанию
Добрый день! Назначил в планировщике задач запуск скрипта (время работы 3 часа) на 1 час ночи, судя по протоколу он запустился и тут...

Запуск по расписанию
На Mac OS есть возможность запуска программ по расписанию через календарь. Столкнулся с проблемой: Ввожу время, выбрал программу,...

Запуск обработок по расписанию
всем доброго времени суток... такая задачка... имеем УТ-шку. к ней есть внешняя обработка (несколько табличных частей + кнопка...

0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
07.09.2022, 15:23
Помогаю со студенческими работами здесь

Запуск метода по расписанию
Добрый день. К примеру обычное приложение на WinForms, в нем есть метод HelloWorld public void HelloWorld() { ...

Запуск скрипта по расписанию
Люди есть вопрос. Кто может сделать скрипт или что-то в этом роде... Короче мне надо, чтобы на моем сайте без моего ведома запускался...

Запуск программы по расписанию
Есть готовая рабочая программа. Задача стоит следующая: запускать вычисления каждую ночь на различных данных. Днем немного правится...

Запуск программ по расписанию
Нужно реализовать программу на Microsoft Visual C++ которая бы запускала программы по заданному времени. Я её реализовал под Win32...

Запуск программ по расписанию
Добрый всем день! Не ругайте если не смог найти аналогичное решение на форуме , но я его не нашел. Нужно как то реализовать запуск...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
1
Ответ Создать тему
Новые блоги и статьи
делаю науч статью по влиянию грибов на сукцессию
anaschu 13.03.2026
прикрепляю статью
SDL3 для Desktop (MinGW): Создаём пустое окно с нуля для 2D-графики на SDL3, Си и C++
8Observer8 10.03.2026
Содержание блога Финальные проекты на Си и на C++: hello-sdl3-c. zip hello-sdl3-cpp. zip Результат:
Установка CMake и MinGW 13.1 для сборки С и C++ приложений из консоли и из Qt Creator в EXE
8Observer8 10.03.2026
Содержание блога MinGW - это коллекция инструментов для сборки приложений в EXE. CMake - это система сборки приложений. Здесь описаны базовые шаги для старта программирования с помощью CMake и. . .
Как дизайн сайта влияет на конверсию: 7 решений, которые реально повышают заявки
Neotwalker 08.03.2026
Многие до сих пор воспринимают дизайн сайта как “красивую оболочку”. На практике всё иначе: дизайн напрямую влияет на то, оставит человек заявку или уйдёт через несколько секунд. Даже если у вас. . .
Модульная разработка через nuget packages
DevAlt 07.03.2026
Сложившийся в . Net-среде способ разработки чаще всего предполагает монорепозиторий в котором находятся все исходники. При создании нового решения, мы просто добавляем нужные проекты и имеем. . .
Модульный подход на примере F#
DevAlt 06.03.2026
В блоге дяди Боба наткнулся на такое определение: В этой книге («Подход, основанный на вариантах использования») Ивар утверждает, что архитектура программного обеспечения — это структуры,. . .
Управление камерой с помощью скрипта OrbitControls.js на Three.js: Вращение, зум и панорамирование
8Observer8 05.03.2026
Содержание блога Финальная демка в браузере работает на Desktop и мобильных браузерах. Итоговый код: orbit-controls-threejs-js. zip. Сканируйте QR-код на мобильном. Вращайте камеру одним пальцем,. . .
SDL3 для Web (WebAssembly): Синхронизация спрайтов SDL3 и тел Box2D
8Observer8 04.03.2026
Содержание блога Финальная демка в браузере. Итоговый код: finish-sync-physics-sprites-sdl3-c. zip На первой гифке отладочные линии отключены, а на второй включены:. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru