Je suis en train de créer une méthode de déclenchement de notifications et je voulais être exécutée 3 fois par jour à des heures spécifiques.
J'ai vérifié la documentation mais je n'ai pas compris ce code regex et comment le personnaliser comme j'en ai besoin!
Maintenant, ma méthode ressemble à ceci: (elle s'exécute maintenant toutes les minutes à la 45e seconde pour les tests) J'en ai besoin, par exemple fonctionne à 18h, 20h, 23h tous les jours
@Cron('45 * * * * *') async sendNotificaiotns() { console.log('sending notification'); try { const randomArticle = await this.articleRepository .createQueryBuilder() // .select("id") // .getMany(); // .select("id") .orderBy("RAND()") .limit(1) .getOne(); const input = new NotificationBySegmentBuilder() .setIncludedSegments(['Active Users', 'Inactive Users']) .notification() // .email() .setAttachments({ data: { ...randomArticle, }, big_picture: encodeURI(randomArticle.image) }) .setHeadings({ 'en': randomArticle.title }) .setContents({'en': randomArticle.excerpt }) .build(); console.log(randomArticle); await this.oneSignalService.createNotification(input); } catch (e) { console.log(e); } }
3 Réponses :
Si vous devez l'exécuter à 18 h, 20 h et 23 h, essayez quelque chose comme ça. (Utilisez votre fuseau horaire)
var cron = require('node-cron'); cron.schedule('0 18,20,23 * * *', () => { console.log('Runing a job at 6pm,8pm and 11pm at America/Sao_Paulo timezone'); }, { scheduled: true, timezone: "America/Sao_Paulo" });
J'ai utilisé node-cron ici. https://www.npmjs.com/package/node-cron p >
J'espère que cela vous aidera.
Vous pouvez utiliser le site crontab.guru comme terrain de jeu pour modèles crontab. Il fournit également des exemples compréhensibles et astuces .
Comme déjà mentionné dans un autre modèle de réponse qui vous convient serait 0 18,20,23 * * *
, vous pouvez le modifier et voir comment il a changé ici .
Veuillez changer votre cron comme indiqué ci-dessous:
@Cron('0 0 18,20,23 * * *')
Le cron donné ci-dessus exécutera votre fonction tous les jours à 18 h, 20 h et 23 h.
comment spécifiez-vous le fuseau horaire dans l'annotation?