通知トリガーメソッドを作成していて、特定の時間に1日3回実行したいと考えていました。
ドキュメントを確認しましたが、その正規表現コードと、必要に応じてカスタマイズする方法がわかりませんでした。
これで、私のメソッドは次のようになります:(テストのために2番目の45日に毎分実行されます)たとえば、毎日午後6時、午後8時、午後11時に実行する必要があります
@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);
}
}
午後6時、午後8時、午後11時に実行する必要がある場合は、次のようにしてみてください。(タイムゾーンを使用してください)
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"
});
ここではnode-cronを使用しました。https://www.npmjs.com/package/node-cron
お役に立てれば。
この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。
侵害の場合は、連絡してください[email protected]
コメントを追加