Я следую примеру в ссылке https://github.com/microsoftgraph/msgraph-training-changenotifications и создаю и обновляю подписку на уведомления, используя класс таймера.
[HttpGet]
public ActionResult<string> Get()
{
var graphServiceClient = GetGraphClient();
var sub = new Microsoft.Graph.Subscription();
sub.ChangeType = "updated";
sub.NotificationUrl = config.Ngrok + "/api/notifications";
sub.Resource = "/users";
sub.ExpirationDateTime = DateTime.UtcNow.AddMinutes(5);
sub.ClientState = "SecretClientState";
var newSubscription = graphServiceClient
.Subscriptions
.Request()
.AddAsync(sub).Result;
Subscriptions[newSubscription.Id] = newSubscription;
if(subscriptionTimer == null)
{
subscriptionTimer = new Timer(CheckSubscriptions, null, 5000, 15000);
}
return $"Subscribed. Id: {newSubscription.Id}, Expiration: {newSubscription.ExpirationDateTime}";
}
Но я заметил, что таймер не всегда срабатывает (например, проблема, связанная с сетью / после нового развертывания кода).
Есть ли лучший способ заменить этот таймер?
Я слышал о веб-заданиях в Azure. Можно ли заменить этот таймер на веб-задания Azure? Если это так, может кто-нибудь указать мне какую-то документацию о том, как?