FastAGI with reloadable modules

Discussions about development of VICIDIAL and astGUIclient

Moderators: gerski, enjay, williamconley, Op3r, Staydog, gardo, mflorell, MJCoate, mcargile, Kumba, Michael_N

FastAGI with reloadable modules

Postby mcargile » Fri Jul 06, 2007 9:19 am

There is a module for Perl that supports module reloading called Module::Reload::Selective. It is mainly used for development purposes. Not fully sure how stable it is in a production environment, but it could allow Vicidial to become similar to asterisk in that we could reload modules on the fly. This would give us the best of both worlds. The speed of FastAGI with the ability to make changes on the fly to the scripts like regular AGI. Basically give transfer scripts and the like a FastAGI wrapper that dynamically loads a PM file and periodically (every minute lets say) check the modification time of the PM file and if it is newer than that of the current one reload it.
Last edited by mcargile on Mon Aug 20, 2007 11:37 am, edited 1 time in total.
Michael Cargile | Director of Engineering | ViciDialGroup | http://www.vicidial.com

The official source for VICIDIAL services and support. 1-888-894-VICI (8424)
mcargile
Site Admin
 
Posts: 614
Joined: Tue Jan 16, 2007 9:38 am

Postby mflorell » Fri Jul 06, 2007 3:48 pm

Very interesting, wonder how stable it is though.

Have you been able to do any production-level testing on your new FastAGI code?
mflorell
Site Admin
 
Posts: 18338
Joined: Wed Jun 07, 2006 2:45 pm
Location: Florida

Postby mcargile » Fri Jul 06, 2007 5:07 pm

We plan on production level testing of the code end of next week. Our client first wants to build a full vicidial 2.0.3 system to replace their touchstar. Once that is done we are going to convert their current box to use svn and I get to play with it as our production test box.

I am actually planning on writing a FastAGI wrapper and call it FAGIwrapper.pl which we will create sysbolic links to for each of the scripts. The FAGIwrapper.pl will look what name it was called with, chop the pl off the end and load a pm file by that name. Every minute it will check the modification time of the pm file and reload it if need be. This wrapper will then call the child_init_hook and process_request function of the pm that was loaded.
Michael Cargile | Director of Engineering | ViciDialGroup | http://www.vicidial.com

The official source for VICIDIAL services and support. 1-888-894-VICI (8424)
mcargile
Site Admin
 
Posts: 614
Joined: Tue Jan 16, 2007 9:38 am


Return to Development

Who is online

Users browsing this forum: Google [Bot] and 12 guests

cron