Je suis nouveau pour explorer comment faire cela en python. Ce que je veux faire est d'exécuter une fonction tous les jours ouvrables à un moment précis, par exemple, dire à 14h55, à seulement 5 minutes avant la fermeture du marché boursier en Chine. Cette fonction extrait certaines données d'une API d'alimentation de données boursières et effectue quelques calculs simples pour générer un signal (-1 signifie court, +1 signifie long, 0 signifie ne rien faire). Je n'envoie pas encore le signal pour faire un échange maintenant. Je sauve les signaux tous les jours dans un fichier localement. Ainsi, je pourrais être en mesure de recueillir les signaux pendant 2 semaines ou chaque fois que je me sens d'arrêter ce programmateur.python comment exécuter une fonction tous les jours à un moment précis, mais peut également être terminée
Je remarque que le module APScheduler
est assez souvent suggéré. Mais je l'ai essayé, n'a pas trouvé un moyen de faire arrêter le planificateur 2 semaines après. Je trouve seulement des moyens de mettre en place un planificateur à exécuter, peut-être toutes les 10 minutes, mais il continue à exécuter une fonction spécifiée toutes les 10 minutes et ne peut pas être arrêté par programmation, mais seulement en appuyant sur Ctrl+C
? Par exemple, je veux exécuter une fonction toutes les 10 minutes pour 6 fois, en APScheduler
, je n'ai pas vu de toute façon de spécifier l'argument '6 fois'. Ou je veux exécuter une fonction toutes les 10 minutes jusqu'à 1 heure plus tard. Je n'ai pas vu l'argument '1 heure plus tard' ou '16:30' non plus. Comment faire?
Actuellement, je le fais de cette façon:
def test_timer():
'''
Uses datetime module.
'''
running = 1
stop_time = datetime.now() + timedelta(seconds=60)
while running:
print('I\'m working...')
time.sleep(5)
running = datetime.now() < stop_time
print('Goodbye!')
Modifié: J'utilise python 3.6 dans Windows 10.
Si vous utilisez Linux un moyen facile serait d'utiliser une crontab qui viendra pour exécuter votre code lorsque vous en avez besoin – Squick
@Squick Lol question ne comprend jamais la définition de 'OS' – dsgdfg
@dsgdfg c'est pourquoi j'ai dit" si " – Squick