How to do periodic background sync in progressive web apps? - progressive-web-apps

Actually, I want to do background periodic sync in my pwa but,I have searched this at google but don't find the relevant answer that I want!

Periodic background sync does not currently exist outside of this proposal document. It's not currently part of any web standard, and no browsers have added support for it inside of their service worker implementation.
While there is support for background sync inside of a service worker, it's a one-off, not repeated at a time interval.

Related

How To Get Email Notification when Firebase Cloud Function Exceeds Certain Invocation Threshold

I am developing a flutter application and using Firebase Cloud Function as a backend service. Due to a bug, my Flutter application was making infinite request to an HTTP cloud function. The requests invocation would stop when I would dispose the Screen. I was able to detect this bug due to the print logs.
I have resolved the issue but this led me to the search of a service or a way by which I can be notified when my Cloud Function is being called too many time in a certain period of time, For example, if my Cloud Function is called 100 times in under 20 seconds then I should be notified via an Email so that I can fix the issue. The application is currently in development so I want to keep the threshold as low as possible so that I can detect an issue as quickly as possible to avoid expensive costing.
I have done research of my own but I cannot seem to find a proper answer. I have found out about Google Cloud Monitoring but I don't understand it properly. The documentation is quite complex, I cannot find any tutorials on youtube or any answers on SO.
I tried to make an alert policy in the Google Cloud Monitoring and tried the 'metrics' but it did not work because I do not have good understanding of the plateform.
Can anyone help me in solving this issue. I would like a step by step solution to the problem.

Bluemix Auto Scaling API

Is there a way for me to programmatically get notified when Bluemix auto scaling has scaled up or down?
I'm reading streaming data from a queue and would like to make sure the number of instances that I have are balanced and data is partitioned correctly
At present this kind of notification service is not available, only you can do is query the instance scaling history in Web UI. I think this requirement is interesting and should be considered to provide to developer in the future.
This kind of alert isn't available yet but you can write a simple script monitoring output of
cf app (appname)
It returns the number of instances running and the state of each one, with the right combination of awk and grep (or a perl script for example) you could have your own alerter while waiting for this of functionality

Upgrading an app running on Lift Framework?

I've recently discovered the lift framework and have read that it's stateful.
Therefore, if I had a high-traffic site running on Lift - say something that was running a chat application that required users to be logged in - and I wanted to upgrade my app, would doing so kick everyone out of chat and make them have to log in again?
None of the previous answers are correct. Many of the artefacts held within the LiftSession are non-serilizable, so cant be stuffed into a database. You have two options for doing rollig upgrades of stateful applications:
1) Session bleeding. Basically you ween one of the deployments sessions away until their sessions have ended or X duration passes and then you remove the app from production whilst automatically rerouting traffic to another instance of Lift. Google around for rolling upgrades using HAProxy as this should help you from the cluster perspective.
2) If your state is fairly trivial (mostly primitive-style types: ints, strings etc) then you could think about using ContainerVar/MigratableSession and clustering the state using terracotta or similar. This comes with a range of limits though because it then uses the HTTPSession rather than LiftSession.
You might want to checkout chapter 15 of Lift in Action which details that latter solution in a fair amount of detail.
If you keep your state in memory and redeploy the web application, that state will be lost. You could save it to a database or a file before redeploying though and read it back from there.

Keeping iPhone application in sync with GWT application

I'm working on an iPhone application that should work in offline and online modes.
In it's online mode it's supposed to feed all the information the user enters to a webservice backed by GWT/GAE.
In it's offline mode it's supposed to store the information locally, and when connection is available sync it up to the web service.
Currently my plan is as follows:
Provide a connection between an app and a webservice using Protobuffers for efficient over-the-wire communication
Work with local DB using Core Data
Poll the network status, and when available sync the database and keep some sort of local-db-to-remote-db key synchronization.
The question is - am I in the right direction? Are the standard patterns for implementing this? Maybe someone can point me to an open-source application that works in a similar fashion?
I am really new to iPhone coding, and would be very glad to hear any suggestions.
Thanks
I think you've blurring the questions together.
If you've got a question about making a GWT web interface, that's one question.
Questions about how to sync an iPhone to a web service are a different question. For that, you don't want to use GWT's RPCs for syncing, as you'd have to fake out the 'browser-side' of the serialization system in your iPhone code, which GWT normally provides for you.
about system design direction:
First if there is no REAL need do not create 2 different apps one GWT and other iPhone
create one but well written GWT app. It will work off line no problem and will manage your data using HTML feature -- offline application cache
If it a must to create 2 separate apps
than at least save yourself effort and do not write server twice as if you go with standard GWT aproach you will almost sertanly fail to talk to server from stand alone app (it is zipped JSON over HTTP with some tricky headers...) or will write things twise so look in to the RestLet library it well supported by the GAE.
About the way to keep sync with offline / online switching:
There are several aproaches to consider and all of them are not perfect. So when you conseder yours think of what youser expects... Do not be Microsoft Word do not try to outsmart the user.
If there at least one scenario in the use cases that demand user intervention to merge changes (And there will be - take it to the bank) - than you will have implement UI for this - than there is a good reason to use it often - user will get used to it. it better than it will see it in a while since he started to use the app because a need fro it is rare because you implemented a super duper merging logic that asks user only in very special cases... Don't do it.
balance the effort. Because the mess that a bug in such code will introduce to user is much more painful than the benefit all together.
so the HOW:
The one way is the Do-UnDo way.
While off line - keep the log of actions user did on data in timed order user did them
as soon as you connected - send to server and execute them. Same from server to client.
Will work fine in most cases as long as you are not writing a Photoshop kind of software with huge amounts of data per operation. Also referred as Action Pattern by the GangOfFour.
Another way is a source control way. - Versions and may be even locks. very application dependent. DBMS internally some times use it for transactions implementations.
And there is always an option to be Read Only when Ofline :-)
Wonder if you have considered using a Sync Framework to manage the synchronization. If that interests you can take a look at the open source project, OpenMobster's Sync service. You can do the following sync operations
two-way
one-way client
one-way device
bootup
Besides that, all modifications are automatically tracked and synced with the Cloud. You can have your app offline when network connection is down. It will track any changes and automatically in the background synchronize it with the cloud when the connection returns. It also provides synchronization like iCloud across multiple devices
Also, modifications in the Cloud are synched using Push notifications, so the data is always current even if it is stored locally.
Here is a link to the open source project: http://openmobster.googlecode.com
Here is a link to iPhone App Sync: http://code.google.com/p/openmobster/wiki/iPhoneSyncApp

Sync (button) on Iphone Application

Can anyone tell me How does the Sync Button on many Iphone app. works (like 'Le Monde').
The button download and replace all files of the application? only look for change (new entry) on the database and add them?....
Thanks,
Typically a button like that is making a web service call, depending on the call you may be updating or replacing the information currently on the device.
Some web services will allow you to ask for information since a certain date:
/FetchArticles?afterDate=200911011952
Some will just provide you with a set amount of information.
Most of the time the calls to a web service will return light enough data that you can just replace what you had with what you fetch, but sometimes the data is a little heavier(images, video, etc...), so you'll want to hang onto what you already have and add to it.
Without knowing more about your App, or if it even uses network resources it's hard to provide any more help.