[asterisk-users] asterisk, phpagi and singleton
Steve Edwards
asterisk.org at sedwards.com
Sun Oct 5 13:55:59 CDT 2008
On Sun, 5 Oct 2008, Giedrius Augys wrote:
> I've this situation: 300+ simultaneous calls and dialplan like this:
> exten => _X.,1,Answer()
> exten => _X.,2,DEADAGI(check_status.php)
> exten => _X.,3,Dial(SIP/other/${NUMBER})
> exten => _X.,4,Hangup
>
> exten => h,1,DEADAGI(cdr.php)
>
> When project is running , I had a lot of defunct php scripts (I've exceed
> mysql connection limits and so on, deadagi help a bit). The scripts
> check_status.php and cdr.php connects to database to retrieve/store data. So
> one call - 2 connections to database. So I want to do like this: 100
> simultaneous calls , make 200 queries per one mysql connection. WEB
> developers uses singleton to avoid this issue. Maybe somebody has experience
> with singleton and phpagi.
> thanks...
I'm not a "php weenie," but whatever is the cause of your defunct
processes should be resolved or you are always going to have issues. I'd
look for open channels, open database connections, improper child process
handling or improper signal handling.
The first invocation of deadagi() appears to be inappropriate and
misleading. The channel is not dead at this point. If you were having
problems when callers hang up, you may not be handling signals correctly.
You can raise the number of connections allowed by MySQL, but this is a
"band-aid," not the solution. I'm guessing you don't need xxx simultaneous
connections to the database.
fastagi() would allow you to have a single[ton] connection to the
database. You can run the fastagi "daemon" on the Asterisk server, the
MySQL server or any other server.
In the off chance the above is your literal dialplan, you should use "n"
instead of numbered priorities.
Thanks in advance,
------------------------------------------------------------------------
Steve Edwards sedwards at sedwards.com Voice: +1-760-468-3867 PST
Newline Fax: +1-760-731-3000
More information about the asterisk-users
mailing list