0

ユーザーにプッシュ通知を送信しようとしていて、1日に3回または2回送信しようとしていますが、その後、今日3回通知を送信したように通知を送信したくなく、その後通知を送信したくありません次のサイクルは翌日から始まります。午後 7 時以降は停止できません。午後 7 時以降にノードの cron を停止し、翌日にサイクルを開始したいと考えていました。

const cron = require("node-cron");
const { db, growthfile20724db } = require("../constant");
let AWS = require("aws-sdk");
// const { getAuth } = require('../utils/reportUtils');
AWS.config.update({
  accessKeyId: "",
  secretAccessKey: "",
  region: "us-east-1",
});
const sns = new AWS.SNS();

const sendReminderRet = async (profile) => {
  console.log(profile);
  const updateSnapshot = await db
    .collection("Updates")
    .where("phoneNumber", "==", profile.phoneNumber)
    .get();
  const updateArray = updateSnapshot.docs.map(
    (doc) => doc.data().registrationToken
  );
  console.log("registerToken", updateArray[0]);

  cron.schedule("* * /3 * * *", () => {
    console.log("running a task every ten minutes");
    let params = {
      PlatformApplicationArn: "",
      Token: `${updateArray[0]}`,
    };

    let payload2 = JSON.stringify({
      default: "push notification",
      GCM: JSON.stringify({
        notification: {
          body: "Hi ",
          title: "Reminder",
        },
        // data: {
        //   testdata: "Check out these awesome deals!",
        //   url: "www.amazon.com",
        // },
      }),
    });
    sns.createPlatformEndpoint(params, (err, data) => {
      if (err) {
        console.log(err);
      } else {
        sns.publish(
          {
            Message: payload2, // Required
            MessageStructure: "json",
            TargetArn: data.EndpointArn,
          },
          (err, data) => {
            if (err) {
              console.log(err.stack);
            } else {
              console.log(data);
            }
          }
        );
      }
    });
  });
};
module.exports = { sendReminderRet };
4

0 に答える 0