Run two CGIs simultaneously and Ajax to read updated value from CGI1


 
Thread Tools Search this Thread
Top Forums Programming Run two CGIs simultaneously and Ajax to read updated value from CGI1
# 1  
Old 06-10-2010
Run two CGIs simultaneously and Ajax to read updated value from CGI1

Flow of program:
C based CGI is used

CGI1:
-Gets called when user hits upload button(submit) ie form action = CGI1
-Does the file upload (copy to a directory etc)

JS, Ajax fucntion:
-A JS function is called when user hits upload button
-The JS function opens an Ajax request for CGI2
-Ajax keeps polling CGI2 for updated value

CGI2:
-Contains:
system ("some cmd to get directory size");

Issue:
Ajax is not able to read values from CGI2 as it polls to get updated values after every 1 sec. It is able to get last value.
In some cases it is able to get 1-2 other values but not EVERY TIME.

Logically my program is fine. I have tested running CGI2 separately, it works fine. I have tested Ajax, and no issues with it as well. The status which it receives is 0 or sometimes 500.
However, altogether, it is not working.

Possible cause:
-Environment issue
-Running 2 CGIs simultaneously
-System() command used in CGI2 is not the right way to get output for Ajax


Any suggestion/solution would be really appreciable.



Thanks
# 2  
Old 06-10-2010
In other words, new thread, same problem.

I can't tell whether "some cmd to get directory size" is correct or not without seeing it, but it's not like you were getting sensible results from disk before. If you're not getting sensible results from the filesystem itself until CGI1 completes, no number of variations on reading it from the filesystem is going to be the "magic" way to do it, the information's just not there, yet -- or is being incorrectly cached somehow by your web server or CGI library.

I think you're going to have to create a way for CGI2 to communicate with CGI1 without storing the message on disk. Perhaps it could create a FIFO in /tmp/ which CGI1 would write to and CGI2 would read from, or a UNIX domain socket. I'll post pseudocode in a minute.
# 3  
Old 06-10-2010
i am thinking it could be a couple of issues. either the form and how it is submitted and the ajax is called. you said CGI1 is being called by the normal form action and a submit button. or it is how CGI2 is updating ajax.

does the ajax that calls CGI2 work fine if you create a button that only calls the ajax and doesn't submit the form?

--nate
# 4  
Old 06-10-2010
Code:
int percent;
mutex m;

void fifo_writer_thread(void)
{
    char fifoname[256];
    int fd;
    sprintf(fifoname, "/tmp/fifo-%d\n", file_unique_id);
    mkfifo(fifoname, 0006);

    while(1)
    {
      char buf[16];
      int fd;
      int local;
      lock(m);  local=percent; unlock(m);

      if(local < 0) break; // End thread when percent<0

      fd=open(fifoname, O_WRONLY|O_DIRECT);
      if(fd >= 0)
      {
        int len=sprintf(buf, "%d\n", local);
        write(fd, buf, len);
        close(fd);
      }

      sleep(1);
    }

    unlink(fifoname);
}

void upload_reader(void)
{
    while(1)
    {
       if(!transfer_block()) break;

       lock(m); percent++; unlock(m);
    }

    lock(m);  percent=-1; unlock(m);

    wait_for_thread();
}

# 5  
Old 06-10-2010
I will check this case, but I am sure it will work fine then. However, along with CGI1 it doesn't.
Ya, form submit could be an issue. Ajax is just called by calling a JS function ie JS function gets called on button submit which further open(), send etc

---------- Post updated at 03:37 PM ---------- Previous update was at 03:36 PM ----------

@Corona688:But, how will Ajax read this?? It a JS function.
# 6  
Old 06-10-2010
ok, then IF (definitely check this) ajax and CGI2 works by itself.... then i am thinking it is how the browser is handling form action with the submit button (and possibly the file input field is another issue) with the ajax.

have you tried not using a submit button and the form action tag but using a normal button with js that calls the ajax and then form.submit() ?

i assume the target of the form submission is in another iframe on the page that doesn't contain ajax js code. if not, then that is definitely the issue.

cheers,
--nate
# 7  
Old 06-10-2010
Alright, I will try this.

Thanks Nate ;-)
Login or Register to Ask a Question

Previous Thread | Next Thread

9 More Discussions You Might Find Interesting

1. Shell Programming and Scripting

How to run feeding each other processes simultaneously?

Hello, I need to run multiple shell processes simultaneously and output of the first process shall be the input of the second process but first process is never ending so both should be running in parallel. I do not wish to wait the end of the first process. I am under ubuntu 16.04. ... (3 Replies)
Discussion started by: baris35
3 Replies

2. Shell Programming and Scripting

Shell script has to run until the status value is updated

Hi All, Need some help like how to exit from the script after updating the column in data base. db2 connect to DB STATUS=$(db2 "SELECT STATUS FROM XYZ ) echo $STATUS Initially the status value will be '4' or 'NOT YET RUN'. The Shell script has to run until the status value is updated... (7 Replies)
Discussion started by: sumanmca2006
7 Replies

3. Shell Programming and Scripting

Run 2 shell scripts simultaneously from one script

i Run 2 scripts on all of around 50 nodes every day. 1.Mod_1.sh 2.Mod_2.sh eg.. i run file with specific node no like Mod_1.sh NODE_(node number) Mod_2.sh NODE_(node number) I want to run both file by using single script with unique node number. Eg.. Mod_new.sh NODE_(node... (11 Replies)
Discussion started by: Ganesh Mankar
11 Replies

4. Shell Programming and Scripting

Read file and run a command

Hi I have jobs (some 1000) defined in a file and I want to read those jobs and run a a command. For example: jobs.txt abc efg I want to read the entire file and run the following command Delete -JOB "abc" Deleteing abc... Delete -JOB "efg" Delete efg... Can somebody help me... (4 Replies)
Discussion started by: karan8810
4 Replies

5. Shell Programming and Scripting

Read Line is not Updated

Hi, Is there a way to reflect the recent changes in the file being read when using "while read line" loop? Thanks! script: while read line do echo $line cat x.dat|sed 's/2/6/g' > x.dat.temp mv x.dat.temp x.dat done < x.dat The results is still getting below, even... (2 Replies)
Discussion started by: zzavilz
2 Replies

6. UNIX for Dummies Questions & Answers

Read same file simultaneously with two different programs

Hi all, I was just wondering if there are any consequences, or if its a problem to have a multiple scripts parsing (reading) the same file simultaneously. For example, I have file.txt with lots of information. cat script1.sh grep "awesome" file1.txt > awesome.txt cat script2.sh grep -v... (4 Replies)
Discussion started by: torchij
4 Replies

7. Shell Programming and Scripting

[Help] script how to run 2 commands simultaneously

#!/bin/sh firefox index.html firefox secondpage.html hey guys, im not able to open up two pages at the same time... it always open up index.html first, and only after i close it, then the 2nd page pops up... is there any way i can run both commands at the same time? i appreciate any... (2 Replies)
Discussion started by: funnyguy123
2 Replies

8. Shell Programming and Scripting

Run a command in bg simultaneously with

Hi, I want to run the command below in the background: tail -f file.txt | grep "pattern" The file file.txt will start getting its contents written after this command has started getting run. So the flow will be like this tail -f file.txt | grep "pattern" #The line below will write data... (0 Replies)
Discussion started by: King Nothing
0 Replies

9. Shell Programming and Scripting

run serveral loops simultaneously?

Hello everyone, say I have the following script, which contains serveral loops, if I run the script, it executes the loop one by one (after the a loop, it goes to b loop, then c, then d) I figured I should be able to run all the loops at same time, but I don't know how, can anyone help a little... (2 Replies)
Discussion started by: fedora
2 Replies
Login or Register to Ask a Question