Laravel queue: How to track progress and know which sub jobs suceeded/failed - laravel

Currently im building a platform where android FCM messages have to be sent out to devices which has my app installed.
I have a notification builder in my backend which will allow an admin to add notifications. This also dispatches a NotificationJob which will query the DB and find all devices which has installed the app (say 1000 end users) and dispatches a sub job each to send the push notification out (1000 subjobs).
In the notification admin panel I want to display a status like 950 succeeded/50 failed corresponding to each notification entry.
Is something like this possible with laravel queues?
Also are subjobs really a overkill for this?

Related

How to send notification to specific user in Expo/Laravel

I have an Expo app with a Laravel backend and I want to send notifications to the app. But the condition is that only a specific user can receive it.
I installed the Following library Exponent Notifications
I've Installed expo-notifications as well
But I don't know How it works, How I can listen to the notification channel and How to send Notification from backend.
With Expo you don't get to pick the push notification service according to you, you can try Firebase Cloud messaging or One Signal, but I don't think you can do it only by your Laravel Backend

Get notified about changes in a google calendar

I was wondering, is it possible to set up a Mac OS X app, to get notified when a user makes changes to a Google Calendar. Like what you can do with EKEventStore?
There’s a query method + (id)queryForCalendarListWatchWithObject:(GTLCalendarChannel *) object, but I’m not really sure how you should set up the GTLCalendarChannel object.
Or is the only way, other than polling, to use push notifications?
Thanks in advance.
You can use Google Calendar API which provides push notifications that let you watch for changes to resources. This makes periodic polling unnecessary.
You can use this feature to improve the performance of your application. It allows you to eliminate the extra network and compute costs involved with polling resources to determine if they have changed. Whenever a watched resource changes, the Google Calendar API notifies your application.
To use this API, you need to:
Register the domain of your receiving URL. Before you can set up a push notification channel, you must register the domain for any URLs you plan to use to receive push notification messages.
Set up your receiving URL, or "Webhook" callback receiver. Whenever a watched resource changes, your application will receive a notification message describing the change. The Google Calendar API sends these messages as HTTPS POST requests to the URL you specified as the "address" for this notification channel.
Set up a notification channel for each resource endpoint you want to watch. To request push notifications, you need to set up a notification channel for each resource you want to watch. After your notification channels are set up, the Google Calendar API will inform your application when any watched resource changes.
When a calendar changes, it will notify your app and the app does an API call to get the update. You can use one of the Google API client libraries to utilize push notifications.
Check these documentation and blog about Google Calendar API Push notifications.
Hope this helps!

Custom Push Notifications

I am building a very basic information based app (Android) for an event, and i'd greatly appreciate your help on the questions below.
Basically, the app will just contain information about the 7 guest speakers at the event.
The attendees (2500 android users) will only get the link to the Android app when they arrive at the venue.
There is no database connected to the app as it just contains static information about the speakers which is hard coded into the app, however i want to build in a small feature so that i can send out custom push notifications to all users (let's assume 2500) at various times, such as when a speak is about to start on stage etc.
QUESTIONS
01 - am i right in saying that Parse allows you to send out custom push notifications in bulk from the Parse dashboard?
02 - is it able to send to 2500 at one time or do they need to be sent out in smaller batches?
03 - at what stage do charges start to occur for all of these custom push notifications
Thanks in advance for your help, it's much appreciated.
01. Yes Parse dashboard enables you to send push notifications in bulk.
02. Yes it is able to send as many push notifications as needed you needn't worry about batches since Parse dashboard is a simple GUI frontend made by Parse.com so you don't do any coding.
03. You can see on this link https://parse.com/plans that per app you have 1 million unique pushes. Unique push is equal to 1 push on 1 device. To be clearer a single user might have 5 devices registered to him so sending a push to 1 user does not mean 1 push but 5 pushes 1 for each device.
**One more thing to note if you are going to be making custom pushes you should think about handling the push notification in the Android app if you plan on doing anything fancy. If its just to show the push with text then you need the basic handling of an incoming push that does nothing once the app is opened by a push notification.

Windows Phone 7.5 - Push Notifications when app is tombstoned

I have written a Windows 7.5 phone app that registers for tile and toast push notifications with MPNS. I have all the infrastructure working and the phone registers with MPNS. I save the ChannelUri locally on the phone and then post the ChannelUri to a rest service endpoint on my website which records the device / ChannelUri. I'm able to send toast and tile messages from the web service and receive them on the phone without any problem. If the application is running I'm able to trap the ShellToastNotificationReceived event and can read the push notification details and I save the message to a local database in the application and the messages are also displayed to the user in a Listbox. The system is disconnected from my website other than having to register the ChannelUri and all the data I need is contained with the notification.
My question is when the application has been tombstoned and I send a push notification I see a toast message displayed by the phone OS and if I click on the toast I have put a URI pointing to a page in my application and this re-launchs the app and I can trap all the data in the message and can save it again to the database. But if the application is tombstoned and the user misses the toast I have no way of saving that message it is lost unless I write some logic to go back to my server and check if the messages I have locally match the ones it sent. Am I missing something or am I going to have to run a check with my server when the app re-launches and re-sync with my server for any toast push notifications the user might have missed.
Thanks
When a push notification is received while the application is not running or is tombstoned there is no way to handle the data if nothing was done with the missed toast. You might need confirmation logic on the server to check whether the message is received or not.

Windows Phone 7 - Is it possible to add additional key/values to push notifications messages

I'm testing out Windows Phone 7.5 push notifications. I have got the 3 different push types working fine (Toast, Tile and Raw) and am able to send messages from unit tests and a web application without any problems and receive them in my WP application. I want the ability to add extra properties to the push notification and the Raw push type does this perfectly for me and I can add custom key/value pairs or anything else to the push message and extract it on the phone app. I have just found out however that it only works if the application is running and my unit tests fail (suppressed notification status is received in unit test) when the phone application is not running (checked documentation which confirms this too). Is there anyway to add extra properties (key/values) to toast or tile messages or some way I can use raw in another way ? Toast notifications seem limited to a title property and an actual message property but I need to add additional data.
Just wondering if anyone had any suggestions / workarounds ?
The general practice I use is to initially send a raw notification to the device with phone-usable data embedded in the message. If my application is currently running then I can process the contents of the raw message and immediately make use of it on the phone. However if the application is not currently running on the phone you will receive notification from the push servers that the message could not be delievered. If I receive this response I send out a Toast / Tile notification.
With Toast notifications the only parametrisation you have access to is the URI that will launch the application. This is specified with the wp:param node of the message. Eg.
<wp:Notification xmlns:wp="WPNotification">
<wp:Toast>
<wp:Text1>Toast Title</wp:Text1>
<wp:Text2>Toast sub title</wp:Text2>
<wp:Param>/MainPage.xaml?LaunchedFrom=A%20Toast%20Notification</wp:Param>
</wp:Toast>
</wp:Notification>
If the user taps on this toast notification your application will launch and navigate to MainPage.xaml. You can access the querystring passed in via the NavigationContext.QueryString.
Note: The wp:Param node can only be sent to Mango (and up) devices. Additionally the entire contents must be less than 256 characters or you'll receive a PushErrorTypeMessageBadContent error. (Thanks to Ritch Melton for pointing this out). More info available from the Sending Push Notifications for Windows Phone page on MSDN.
As you've discovered, the Microsoft Push Notification Service is very strict in what types of messages you can send and receive. The intent of these push notifications is to provide simple push updates and not large amounts of data. The flexible Raw type seems like it would fit the bill until you discover that:
You can use a raw notification to send information to your application. If your application is not currently running, the raw notification is discarded on the Microsoft Push Notification Service and is not delivered to the device.
However, if you send a toast notification to your application, when the user clicks on the toast the application is started. When your application starts, you should check a service and retrieve the data you are trying to send from a web-service or other remote mechanism.

Resources