[BioRuby] rails blast server
Yannick Wurm
yannick.wurm at unil.ch
Sat Sep 25 07:49:39 UTC 2010
Thanks guys for the code and advice!
I apologize for taking the list so far off track...
Thanks and regards,
Yannick
On 24 Sep 2010, at 15:04, Frank Schwach wrote:
> Yes, Rails will give you some sugar for the AJAX stuff but, to be
> honeest, it isn't that hard to code that "by hand" and if you need to
> learn Rails first then it really won't be worth it for this project.
> This is a bit off-topic for a BioRuby list but maybe it helps, so
> here is what I use on one of my websites to check for the status of a
> job. In this case, there is a cgi script that checks the job status
> because this is a slightly more complex system, but you could just check
> for the existence of the BLAST result file (but see below). You just
> populate the job ID in the javascript function below in your template as
> you generate the page.
> When my job is finished, I redirect to a different page which displays
> the results but you could just as easily simply insert a link to
> download the BLAST resutl file on the same page. I use Prototype.
>
> <script type="text/javascript"
> src="../your/path/to/prototype.js"></script>
>
> <script type="text/javascript">
> function statusChecker(){
> new Ajax.Updater(
> { success: 'jobStatus'},
> '../cgi-bin/some_job_status_checker.cgi',
> {
> parameters: 'jobid=1234567',
> method : 'get',
> onComplete : onJobCompleteRedirect
> }
> );
> } ;
> /* the job_status_checker returns 'complete' if job is ready to download */
> function onJobCompleteRedirect(response){
> var status = response.responseText;
> if( status == 'completed') {
> window.location.href='../cgi-bin/result_page.cgi?jobid=1234567';
> }
> } ;
>
> /* this actually runs the StatusChecker every 5 secs */
> new PeriodicalExecuter(statusChecker, 5) ;
> </script>
>
>
> Somewhere on the page I have this:
> <span id="jobStatus">queued...</span>
>
> That's the bit that gets updated with whatever
> some_job_status_checker.cgi returns. If it returns 'completed' the
> results page is loaded.
>
> One thing to bear in mind if you just check for the existence of files
> to indicate job status: the BLAST result file exists before the job is
> complete. For that reason you need a sysmte command that first runs
> BLAST and then does something to indicate the job is finished, something
> like "blastall ....; indicate_completeness.sh".
> That could be either to copy the BLAST result into the public download
> folder, so your job status checker doesn't see it before it is complete
> or to simply "touch" a file in that folder with a name like this:
> "JOBID_complete". Then you take the existence of that file as proof that
> the job is finished.
> Hope this help. Good luck!
>
> Frank
>
>
>
>
> On Thu, 2010-09-23 at 23:36 +0530, Anurag Priyam wrote:
>>> Dang I thought Rails would make AJAX stuff easier too? Or is that only if I need a database backend?
>>> Sorry for the noob questions, I haven't done any web dev in a long time...
>>
>> Yea Rails will help you with AJAX a bit. It will also help you with
>> the upload process - paperclip plugin.
>>
>> But yea, as Frank said, for something as simple as this you do not
>> need something as heavy as Rails. You might just want to write a Ruby
>> CGI script or perhaps a Sinatra app. To make life simple with AJAX you
>> can just use jQuery library.
>>
>> I have got some web development experience; feel free to contact me
>> off the list :).
>>
>
>
>
> --
> The Wellcome Trust Sanger Institute is operated by Genome Research
> Limited, a charity registered in England with number 1021457 and a
> company registered in England with number 2742969, whose registered
> office is 215 Euston Road, London, NW1 2BE.
--------------------------------------------
yannick . wurm @ unil . ch
Ant Genomics, Ecology & Evolution @ Lausanne
http://www.unil.ch/dee/page28685_fr.html
More information about the BioRuby
mailing list