Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Add a failover if error occurs when push data #23

Open
remy56k opened this issue Dec 13, 2024 · 10 comments
Open

Add a failover if error occurs when push data #23

remy56k opened this issue Dec 13, 2024 · 10 comments

Comments

@remy56k
Copy link

remy56k commented Dec 13, 2024

Hi! First, thanks for WaveLogGate & Wavelog, awesome stack.

Is it possible to add a failover behavor if Internet connection fail or timeout occurs ?

My idea is simple : write the QSO in a local ADIF file if error, so it'll be easy to import the file when back home.

I can try to implement this but I'm not very used to compiling JS for cross-platform, I use/prefer Golang for this kind of interfaces.

Thanks,

@int2001
Copy link
Contributor

int2001 commented Dec 14, 2024

At first i liked the idea. But the longer i'm thinking about it, questions are coming up:
Why would one save an ADIF twice as failover?

i mean: If you are doing FT8 with WJST-X, the WSJT-X creates his own ADIF regardless if reporting to UDP (for WLGate) is set nor not. You can simply upload the WSJT-X-ADIF to Wavelog. With it's automatic dupe-check only the new ones are going to be added to Wavelog.

Or i am wrong here?

@remy56k
Copy link
Author

remy56k commented Dec 14, 2024

Thanks for consideration !

Indeed, but :

  • WSJT ADIF log can be huge
  • WSJT ADIF log is more difficult to find on the different OS than a path provided by the user
  • If the WLG is hidden behind the WSJT window, you don't see if an error occurs, if just some QSO fail (4G sharing, bad networking), you cannot notice there are missing entries in your log.
  • I know WaveLog can handle duplicate entries, but with a 10Mo WSJT file for just 5 missing QSO, it seems not very handy.

New idea : maybe just ask for a folder instead a file path, and make error files like : YYYYMMDD_missing-QSO.adi.
If a file exists with the date of the day, some QSO are missing and need to be imported.

@int2001
Copy link
Contributor

int2001 commented Dec 14, 2024

Risk that those files are ignored by OP is the same as at WSJT-X.
So redundant Data is growing and growing.

@remy56k
Copy link
Author

remy56k commented Dec 14, 2024

I agree, but the case of a down WaveLog server or instable network are exceptions, and user knows where the folder is, the file or folder can be purged after import.
WSJT logs can not be purged without loose done countries.

Maybe add the feature as optional with a check box to enable it if needed ?
I think it's important in /P operations to be sure QSO are not lost when using WLG.

Thanks for consideration,

@oe3gwu
Copy link

oe3gwu commented Jan 9, 2025

Hi! First, thanks for WaveLogGate & Wavelog, awesome stack.

Is it possible to add a failover behavor if Internet connection fail or timeout occurs ?

* https://github.com/wavelog/WaveLogGate/blob/875e996cb49f368b97db4f76010ba05a66fd2402/main.js#L200

* https://github.com/wavelog/WaveLogGate/blob/875e996cb49f368b97db4f76010ba05a66fd2402/main.js#L207

My idea is simple : write the QSO in a local ADIF file if error, so it'll be easy to import the file when back home.

I can try to implement this but I'm not very used to compiling JS for cross-platform, I use/prefer Golang for this kind of interfaces.

Thanks,

Why not simply add a retry button for another push? No need for an ADIF.

@int2001
Copy link
Contributor

int2001 commented Jan 10, 2025

If we add a "Retry"-Button, we need to implement some kind of queuing into it.
And: The User needs to press that button. For every QSO? For the queue? What happens if 2 QSOs are failing, the next 2 are not failing, and afterwards everything works again?
What happens if the User is "in the field", autostarts WavelogGate and makes QSOs without a internet-connection? Every QSO would fail in that case.

WavelogGate is a simple "transporter" for ADIFs. Never meant to be a buffering/queuing/dequeuing system.

the paradigm for WLGate was (and is): Keep it as simple as possible.

@oe3gwu
Copy link

oe3gwu commented Jan 10, 2025

If we add a "Retry"-Button, we need to implement some kind of queuing into it. And: The User needs to press that button. For every QSO? For the queue? What happens if 2 QSOs are failing, the next 2 are not failing, and afterwards everything works again? What happens if the User is "in the field", autostarts WavelogGate and makes QSOs without a internet-connection? Every QSO would fail in that case.

WavelogGate is a simple "transporter" for ADIFs. Never meant to be a buffering/queuing/dequeuing system.

the paradigm for WLGate was (and is): Keep it as simple as possible.

Why do you think so complicated - no offense!

EVERY variant you mentioned has the same problem now. When you are not connected to the internet, everything fails. My problem is, that out of 100 QSO's 1 fails to upload because of timeout. If this happens, a simple retry button would be enough. No need for buffering, because when it is failed, it is still buffered, because it is still on the screen, just red and not green.

@int2001
Copy link
Contributor

int2001 commented Jan 10, 2025

@oe3gwu - feel free to implement it. but please consider "simpleness" as well and failover-mechanisms. It needs to be bulletproof. Otherwise there will be support-questions over and over.

that's one of the benefits OpenSource provides. You can fork, implement it and give something back via a PR.

No offense meant ;) Just showing a way how to achieve it.

[Edit because reacting to "y do you think so overcomplicated]: Software-development is only 10% real coding. it's 90% brainwork. Checking side-effects, checking support-loads and so on.

@oe3gwu
Copy link

oe3gwu commented Jan 10, 2025

@oe3gwu - feel free to implement it. but please consider "simpleness" as well and failover-mechanisms. It needs to be bulletproof. Otherwise there will be support-questions over and over.

that's one of the benefits OpenSource provides. You can fork, implement it and give something back via a PR.

No offense meant ;) Just showing a way how to achieve it.

[Edit because reacting to "y do you think so overcomplicated]: Software-development is only 10% real coding. it's 90% brainwork. Checking side-effects, checking support-loads and so on.

Honestly if I would be a programmer, I would do it myself. But I am not!

@int2001
Copy link
Contributor

int2001 commented Jan 10, 2025

And I am doing these things during my spare time as a hobby :)
Furthermore I offered a simple solution: upload the ADIF in case of network-problems.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

3 participants