Hi All I spent several days reading and searching examples of how to implement channels. The current status of my project is as follows:
- I have a page which lets the user enter the data used for the offline calculations, a POST request is send - the post request is handled and I can forward these data to a rq-worker, after which I open a basic web-page showing the input data. This page should also hold the results of the asynchronous calculations - the rq-worker starts the requested download of data from a site and I store the data in the apps (gnsspredict) directory. The rq-worker stops with a success reported in the log. - not yet implemented, but this is similar to the download thread, I shall further launch 2 to 3 workers to split up the work so that I can inform the user of the progress of the async calculations But this is where I do not know what to do next. As far as I understand - the rq-worker can send its results using a dictionary to a 'reply-channel', but where does this channel goes to? - of the few complete working examples on github I found I assume that I have to write a javascript (which I never used) to treat the results from the worker thread? I also remark that the javascript has as name 'function()', is this always the case? If so, for all 3 to 4 workers how do I write a script that takes action on which asyn cthread that has finished? All help is appreciated Thanks Alain On Thursday, 10 November 2016 11:55:01 UTC+1, ludovic coues wrote: > > Websocket provide a way for server to send information to the client > without waiting for input from the client. > > Django channels [1] is a project to bring native support of websocket > to django. There are alternatives which might involve a bit more of > work > > [1] https://channels.readthedocs.io/en/stable/ > > 2016-11-10 11:38 GMT+01:00 Antonis Christofides < > [email protected] <javascript:>>: > > Is there no mechanism that when the background tasks finishes to have a > web > > page called which could display the results? > > > > Web pages cannot be "called". They are loaded by the browser. So, what > you > > want is a mechanism that notifies the browser that an event has occurred > in > > the server. That mechanism is comet. > > > > Antonis Christofides > > http://djangodeployment.com > > > > On 2016-11-10 11:54, Alain Muls wrote: > > > > Hi > > > > Tx for the suggestion but how do I reload a page after eg 30 seconds? > > Is there no mechanism that when the background tasks finishes to have a > web > > page called which could display the results? > > I had a look at the signal mechanism of Django but I think that is not > > working since the background task is in another environment than the > django > > apps which called it. > > > > bye/alain > > > > On Thursday, 10 November 2016 09:55:08 UTC+1, Antonis Christofides > wrote: > >> > >> (Note: The most popular way to do asynchronous tasks is celery, but > indeed > >> some > >> people prefer django-rq, which is said to be simpler. But your question > is > >> not > >> affected by that.) > >> > >> I'm not an expert but I think that the "correct" way to do what you > want > >> would > >> be to use comet (i.e. the opposite of ajax). However, if the work > required > >> to > >> make that work is not justified by the budget or the business case, you > >> might be > >> able to get away with a message like "This information is being > >> (re)calculated. > >> Reload the page after half a minute to view the updated results." > (That's > >> what I > >> did last time :-) > >> > >> Regards, > >> > >> Antonis > >> > >> http://djangodeployment.com > >> > >> On 2016-11-10 10:04, Alain Muls wrote: > >> > Hi All > >> > > >> > I am building a website which makes calculations about the visibility > of > >> > satellites. These calculations take about half a minute so I do not > want > >> > to > >> > block the site during this time. I found django-rq and was able to > start > >> > a > >> > asynchronous task which handles the calculations. > >> > > >> > The problem I have is how do I find out when the calculations of the > >> > task > >> > thread are done so that I can direct the results to another web page > >> > which > >> > will display them? > >> > > >> > Thanks for your help > >> > > >> > Alain Muls > >> > > >> > > >> > > -- > > You received this message because you are subscribed to the Google > Groups > > "Django users" group. > > To unsubscribe from this group and stop receiving emails from it, send > an > > email to [email protected] <javascript:>. > > To post to this group, send email to [email protected] > <javascript:>. > > Visit this group at https://groups.google.com/group/django-users. > > To view this discussion on the web visit > > > https://groups.google.com/d/msgid/django-users/6ae68ef3-6a52-4a59-a87b-3fcd627b4f26%40googlegroups.com. > > > > For more options, visit https://groups.google.com/d/optout. > > > > > > -- > > You received this message because you are subscribed to the Google > Groups > > "Django users" group. > > To unsubscribe from this group and stop receiving emails from it, send > an > > email to [email protected] <javascript:>. > > To post to this group, send email to [email protected] > <javascript:>. > > Visit this group at https://groups.google.com/group/django-users. > > To view this discussion on the web visit > > > https://groups.google.com/d/msgid/django-users/0dcd7af0-6833-8174-363a-a68c5b3ff5c9%40djangodeployment.com. > > > > > > For more options, visit https://groups.google.com/d/optout. > > > > -- > > Cordialement, Coues Ludovic > +336 148 743 42 > -- You received this message because you are subscribed to the Google Groups "Django users" group. To unsubscribe from this group and stop receiving emails from it, send an email to [email protected]. To post to this group, send email to [email protected]. Visit this group at https://groups.google.com/group/django-users. To view this discussion on the web visit https://groups.google.com/d/msgid/django-users/c7aa0cfa-0371-4a85-a248-8f2f9715aadd%40googlegroups.com. For more options, visit https://groups.google.com/d/optout.

