Read the statement by Michael Teeuw here.
MMM-NEWS problem
-
@stuartiannaylor folks that have these unexpected problems, use tools to shutdown and restart MM altogether… pm2 is one of those tools, used usually with cron (scheduling tool on linux)
-
@sdetweil Seems a bit of a over kill when node restart and browser hard refresh is a matter of seconds and does exactly the same. Who wants this constantly full restart thing on the wall, on the pie zero on server restart I get no white screen at all stays as back ground and maybe 10 secs to fill again with content so for Pi2/3 you could blink and miss it.
I will prob have some further system log monitor actions but the pi watchdog will force a restart if seizes.
Cron is a really bad way to do it as it quite simple to get a notification exactly when its ready and also not just do it on a time loop when its not so you end up with the horrid white chromium refresh screen.
Tail and log monitoring is where linux excels.
( tail -f -n0 ~/.pm2/logs/MagicMirror-out.log & ) | grep -q 'Ready to go! Please point your browser to:' sh xdotool.shThats it job done.
PM2 only tests that MagicMirror is loaded and running as ‘Ready to go! Please point your browser to:’ comes on my lowly zero quite a bit after PM2 says MagicMirror is running.
Also as I say with when the browser and server (Magic Mirror) become disconnected they stay that way with Pi0/1 Electron will launch again but actually its not necessary as all that is needed is a hard refresh.
You can test this on a Pi2/3 with the setup I did for zero but it will work for 2/3 and also uses Stretch lite which has always confused me why the relatively pointless desktop load is used for a mirror.
Just change three lines and use chromium instead if you follow https://github.com/StuartIanNaylor/MagicMirror-Install-Guide-Raspberry-0-to-3Really electron / server should be 2 PM2 processes as this would work more seamlessly as its an assumption but electron is just Chromium in a java wrapper with the selenium webdrivers so expecting it takes time to reload after being killed and likely that it wasn’t really required.
When this Banana stops twisting my melon as if I can not get I2C running on it then its destined for the bin, but if I do I will have look if I am wrong about the speed of killing electron each timeinstead of just doing a hard refresh.
As of course you can do a refresh as long as its a hard refresh ctrl+F5 and not ctrl+r or F5.
https://www.getfilecloud.com/blog/2015/03/tech-tip-how-to-do-hard-refresh-in-browsers/#.XHcXXIj7SUk -
REFRESHING MM, not RESTARTING could make problems on many modules(including mines.). Regardless some modules would be not affected, but some would.
It depends on design of module structure. I do some tricks on
DOM_OBJECTS_CREATEDas a signal for ready of working. When MM is started and be ready for all DOM being prepared, that notification is emitted. Only one time emittance of that notification is expected during execution, not twice or more. But REFRESHING will break that agreement.When MM Front is refreshed, MM modules would be restarted but some background-procedures (like node_helper.js or related background external scripts) are not killed or restarted properly. Because, many of them are not designed to be REFRESHED.
REFRESHING is some kind of interrupt from User. It couldn’t be predicted or postponed by condition. so, cannot be done killing or restarting process gracefully and safely.So, It’s better not to REFRESH. RESTART MM instead.
-
ok i get it now thank you @Sean .I resolved all the problems i had with my modules except MMM-NEST-STATUS,so i dont need to refresh any more.Thanx again for the explanation.
-
@sean Your Module is being restarted as the server is reset.
If your module causes problems with hard refreshes then its non compatible with any browser as when a browser cache is cleared its cleared.
If refreshing after that causes problems then its bad programming with your module.
Its doesn’t cause problems with a hard refresh though as the cache is cleared, there is no dom as it starts a fresh and the page its pulled in as if the browser had just been started.Do you understand the difference between a hard refresh and soft refresh?
Name your module and I will tell you if its causes problems when hard refreshed? -
@stuartiannaylor
No cache related problem. I’m saying background process.
Let’s assumenode_helper.jshosts some external python script for its job. The script might be started onstart(). In that case, REFRESHING doesn’t affect any harm side-effect to the script because it is already running on.
But if the script needs to be executed with some data of runtime after module starts, you cannot put that script execution instart(). That script should be executed bysocketNotificationsomewhere.
REFRESHING makes thatsocketNotificationtransferring several times without any preparation. You cannot kill the background python script to restart it gracefully before User’s REFRESHING by force.Of course, Developer can make codes to avoid this by checking current running script. but why? MM is not designed to be refreshed by user. (nonetheless whether it is possible or not)
-
@sean Look I am using many modules and hard refreshing with zero problems.
Tell me what your module is and what it is supposed to do under a hard refresh and what error it will cause.
I already know the answer none, but hey will test it and see.Every module I install on config change auto restarts the server which takes seconds. The connection between browser and server is broken.
Browser waits for server to say hey port 8080 is ready then browser hard refreshes.
It takes 10 - 20 seconds 10 for server and the browser still holds the last screen then on ready hard refresh, browser dumps its cache and its the same as first time connection to the site.
Yes you can hard refresh and its vastly quicker than killing a browser for absolutely no apparent reason apart some misunderstanding of actual use.
Its vastly faster than killing and reloading the browser and its seemless without any horrid white screens oh awe snap or whatever it says.
Install my guide on a Pi and watch it do as I am trying to say.https://github.com/StuartIanNaylor/MagicMirror-Install-Guide-Raspberry-0-to-3
-
@stuartiannaylor
First I can’t understand why are you teaching me about usage. :D I’m not the who is trying any HARD or SOFT refreshing.I believe you are using many modules without problem. But I’m also developing above 30+ MM modules for this community for some years. :D
I already know WHAT ERROR some of my modules might have when MM is refreshed. And know also it is just caused by its design. I’m saying just some modules could not be working due to its design when a user refreshes MM by force.
-
@sean Just say what it is and which module and I will test it and prove either you or I are right.
Its that simple as every module I install when I click save on config.js I never need to kill my browser and have gone through 5 to 10 modules at least without trouble and without restart.
Just say which modules and lets test to see who is mistaken?Browsers are stateless and if the server has been reset and the browser drops its cache its the same as running new.
-
@stuartiannaylor
I think this is very meaningless argues.
Anyway, This thread is posted by @costascontis originally. He had a problem withMMM-Newswhenever he does screen refreshing withCtrl+R. And as a creator of this module, I answered this module is not designed for that unexpected action. That’s all.
So, See that module and explain me anything what you want. -
@sean ctrl+r is a soft refresh not a hard refresh and it retains the cache.
Its only piontless because for some reason you will not simply state the modules you know have problems with hard refreshes.
Needs to be ctrl+F5 with chromium or whatever the shortcut key for hard refresh is.
-
@stuartiannaylor
I’M NOT THE WHO HAS PROBLEM WITH REFRESHING. @costascontis is the one who ask this things. So you seems to be speaking to wrong person. -
@sean said in MMM-NEWS problem:
REFRESHING MM, not RESTARTING could make problems on many modules(including mines.). Regardless some modules would be not affected, but some would.
It depends on design of module structure. I do some tricks on
DOM_OBJECTS_CREATEDas a signal for ready of working. When MM is started and be ready for all DOM being prepared, that notification is emitted. Only one time emittance of that notification is expected during execution, not twice or more. But REFRESHING will break that agreement.When MM Front is refreshed, MM modules would be restarted but some background-procedures (like node_helper.js or related background external scripts) are not killed or restarted properly. Because, many of them are not designed to be REFRESHED.
REFRESHING is some kind of interrupt from User. It couldn’t be predicted or postponed by condition. so, cannot be done killing or restarting process gracefully and safely.So, It’s better not to REFRESH. RESTART MM instead.
I am replying to that which just isn’t true.
So when refreshing always do a hard refresh which on Chromium is ctrl+F5 pretty sure ctrl+r is the same as F5 and a soft refresh where it keeps the cache. -
@stuartiannaylor
THIS IS THE MODULE I’VE CREATED!! So I know what happens whenever @costascontis does Ctrl+R.Anyway, this module will be newly getting the source to aggregate when it is refreshed (Hard or Normal whatever). And the reason is I’ve made so because I didn’t expect User doing refresh MM by manually. That is not related with any cache or any refresh mechanism at all. I JUST MADE THIS MODULE TO ACT SO BECAUSE I HAVEN’T EXPECTED SOMEONE REFRESH IT BY FORCE.
Back to the
MMM-News,
Even whatever Hard refresh(Ctrl+F5) or Normal refresh(F5), This module will be accumulate the sources and show articles duplicately.(Because I made so). So I told @costascontis to RESTART instead REFRESH.So now, What isn’t true as you said?
-
@sean I have MMM-news by the side of me and do not have to restart the browser just the server,
-
@stuartiannaylor Of course, RESTART is not also needed usually to normal users. My module is working as expected in commonway.
I don’t know why @costascontis needs REFRESH or RESTART, but he just said he has a problem on REFRESH so I explained him why module has a problem on refreshing(hard or normal whatever) and told him not to REFRESH my module. but if he want it anyway, RESTART instead. That’s all. -
@sean said in MMM-NEWS problem:
Anyway, this module will be newly getting the source to aggregate when it is refreshed (Hard or Normal whatever). And the reason is I’ve made so because I didn’t expect User doing refresh MM by m
I will just quote you once more and say that its not true, but hey.
You can not make a module bridge the stateless gap of browser and server.
The server is incredibly light and its the server that needs to restart the browser can just do a hard refresh and doesn’t need to restart.
It all depends on the way you have installed if your using electron because its in the same process as the server it forces both.
If you install with chromium then you don’t have to restart the browser. -
@stuartiannaylor
I DON’T NEED ANY RESTARTING OR REFRESHING FOR MY MM !! IT WORKS WELL ALWAYS EVEN ON ELECTRON OR CHROMIUM.
This situation is something like speaking to the wall…Anyway, this module will be newly getting the source to aggregate when it is refreshed (Hard or Normal whatever). And the reason is I’ve made so …
the reason is I’ve made so, have you missed this? I’ve made this module to act like that.
So, Test my
MMM-Newswith Hard refreshing or Normal refreshing. It will aggregate duplicated articles because I’ve made so. People can call it a bug or an issue or unexpected misbehavior whatever. But I made it like that! because usually REFRESH by user is not needed for MM. It is not designed for being REFRESHED.
Why you said this is not the true? -
Sean I have it by the side of me and because I restart the server without need to restart the browser there is no aggregated duplicated articles.
It doesn’t happen and irrespective of who or what you are I have it by the side of me installed it without restart and others after with no duplicates as how could there be when the server has been restarted and the only remnants in cache have been dropped by a hard refresh.Pfff enough of this as the universe is flat Sean, flat! Do you hear me!
Its a bug for those who have installed electron but if you use Chromium and do it my way its doesn’t matter. -
@stuartiannaylor
Of course, restarting wouldn’t make duplicated articles.
This module works nicely unless user REFRESHES it by manual.I’m saying just my module is not designed for being refreshed. because REFRESHING will make my module to send socketNotification
"START"tonode_helper.jsfor scanning news source again unexpectedly. It is not related with which front browser is used, or which cache remains or not, or which mechanism is used for refreshing.Its a bug for those who have installed electron but if you use Chromium and do it my way its doesn’t matter.
I don’t care how ppl use my module. So you can call it a bug. But usually people is using Electron as MM’s front and, usually there be no need to REFRESH MM by manual. A bug or not, I don’t care.
Hello! It looks like you're interested in this conversation, but you don't have an account yet.
Getting fed up of having to scroll through the same posts each visit? When you register for an account, you'll always come back to exactly where you were before, and choose to be notified of new replies (either via email, or push notification). You'll also be able to save bookmarks and upvote posts to show your appreciation to other community members.
With your input, this post could be even better 💗
Register Login