Unmatched events on Event Grid - azure-logic-apps

I have a Logic App that sets up a subscriptions in Event Grid with the Wait for resource event occurs trigger.
Basically the logic app is triggered by a http request - sends a message on service bus - register subscription and wait for event. I have a custom service that publishes the event to event grid.
Most of the times this works well but from time to time the event is not received by the logic app. When that happens I get an "unmatched" event in event grid.
As a test I have added code in my event publishing service to retrieve all subscriptions from Event Grid and dump it to a log file before I publish the event, and I can see that the subscription is there and have a state of "Succeeded".
I have done these tests without any filters.
Any ideas what to do?

Related

Apache Flink: Periodically load configuration for a function

Let's say, There is dynamic configuration are stored in a DB to filter blacklisted events from the stream.
A filter function uses this configuration and needs to reload/refresh a new configuration after a time interval(10 min).
A function can be called in every window call to reload the config and reassign the config variable.
NOTE: As this function call in a window is independent of stream's events data so don't want to buffer/hold the stream events in memory till the window is triggered.
Any leads?
You could put a ProcessFunction in front of the window, and have it do the filtering. I'm suggesting a ProcessFunction because it can have a timer that fires every 10 minutes to trigger the reload/refresh of the configuration data.
In this way, all of the events that reach the window will have been pre-filtered by the version of the droplist configuration that was active at the time each event was received.
You could take further advantage of streaming, and stream in the changes to the droplist configuration as they occur, rather than polling for them every 10 minutes.

PubNub AngularJS service fires repeatedly

I have the following event listener in my AngularJS Controller (as shown in the PubNub SDK docs) that fires multiple times on one message if the browser is refreshed after the message comes in.
But the data is empty after the original call to Pubnub.getMessageEventNameFor() so besides for just checking data (which seems like a hack covering up another issue), how/why is this function being repeatedly called?
$scope.$on(Pubnub.getMessageEventNameFor($scope.myChannel), function(ngEvent, data) {
$scope.$apply(function() {
processMessage(data.message);
});
});
Is there a way to prevent this listener from firing multiple times?
UPDATE: The multiple fires are each associated with a previous message, as opposed to multiple firings of the same message. This is sounding more and more like an Pubnub AngularJS SDK issue.

Order of events in ui-router

When I was testing the order of events in ui-router, I was expecting that $stateChangeSuccess would be after $viewContentLoaded but it was not, as shown in the screenshot below:
If I am loading the views remotely, via templateUrl property, it may take sometime for it to load (depending on the network connection). I was showing my loading indicator by watching stateChangeSuccess/Error event and I don't want the loading indicator to stop prematurely when the view is not loaded yet. I guess I would watch $viewContentLoaded event but I want to be consistent with my watches (stateChangeStart/Success) etc. I am wondering if stateChangeSuccess actually waits until after view content loads?
It always loads in that order.
I just tested it by putting a delay in a resolve and in templateProvider (to delay view) and in both cases order of events were same.
Also, when I delayed the view load in templateProvider, $stateChangeSuccess did not fire until the view is loaded (there was nothing in resolves to delay it). So, $stateChangeSuccess does not fire before the view is loaded.

How to set callbacks for updating FullCalendar Event objects in backend

I'd like to add MongoDB / CouchDB as a backend for Fullcalendar. However I need to know when the event has been changed on the client side so I can trigger an update in the backend. Likewise I would need to set a delete callback that would be triggered once the event object was deleted on the client side.
Should the changes fail to propagate to the backend (connection or concurrency issues), the client side should revert to the oldest change saved in the backend.
From what I see about the updateEvent function it's at the view/GUI level and it's about updating/redrawing the View corresponding to the event. Can you please confirm this as well?
UPDATE: In essence I would like to add support in FullCalendar for object collections, collections such as those found in BackboneJS or AngularJS libraries.

Updating UI components from an async callback

Now I know about the Dispatcher and the DispatcherTimer and their benefits.
But I've always been under the impression that an async web-service/WCF callback (completed event handler) are automatically handled by the UI thread.
But looking at some references online such as the one linked below, it seems this is NOT the case.
So the strange thing is that i haven't been using the Dispatcher to update the UI (updating data-bound ObservableCollections) within service completed events, yet I've never received a cross-thread exceptions.
Can anybody explain why i havent seen this exception, or confirm if my original assumption is correct?
Reference:
http://www.silverlightshow.net/items/Tip-Asynchronous-Silverlight-Execute-on-the-UI-thread.aspx
What the dispatcher do is putting a message into the normal windows message queuse. If you update an element bound to an UI element you don't need to use a dispatcher because the PropertyChanged raised when you update your model already put a message into the windows message queue, so you don't need to call any dispatcher, otherwise you just do two round trips into the window message queue.
The easiest explanation is it depends on how you are retrieving your data and whether you are trying to update the UI. For instance, when using HttpWebRequest directly it will always need to be marshaled back to the UI thread. However if you are using WebClient then that is done for you. WCF will also do some marshaling for you.
"WCF proxies in Silverlight applications use the SynchronizationContext of the thread from which the web service call is initiated to schedule the invocation of the async event handler when the response is received."
http://tomasz.janczuk.org/2009/08/improving-performance-of-concurrent-wcf.html
In other words, WCF will marshal the call back to the thread in which it was called from. So if you are invoking your service calls from the UI thread, then they will come back on the UI thread. If you are invoking your services on a different thread then you will need to do the marshaling yourself.
Hope that helps.

Resources