Screenshot

Mugo Queue

Download

Version: 0.2

mugo_queue.zip 13.09 kB

Mugo Queue

What is it?

It's a framework to handle a queue of tasks.

An example: You'd like to rebuild the eZ Find search index for all Article objects. To re-index all articles, you add multiple tasks into the queue. With this framework, you can also develop a task that can re-index a single article. Another process would fetch "re-index" tasks from the queue, execute them, and then remove them if the execution was successful.

The framework comes with a script to add tasks to the queue or to execute tasks from the queue. The task is an abstract class. To implement a concrete task, you need to implement 2 methods:

  1. function create( $parameters )
    The function has to create an array of task ids. With regard to the example, that function would return an array of all article object ids.
  2. function execute( $task_id, $parameters )
    Executes on single task id. With regard to the example, that function would a fetch the object for the given $task_id and add it to the search index

What's the difference between Mugo Queue and an eZ Publish script or cronjob?

The end result is the same: a simple eZ Publish script can, for example, rebuild the eZ Find search index for all Article objects - and so can Mugo Queue.
Mugo Queue requires you to divide the process into 2 steps:

  1. adding the tasks to the queue
  2. executing tasks from the queue

You can interrupt a normal script at any time and restart it from scratch. With Mugo Queue you have the option to continue at the point where you interrupted the script (with remaining tasks in the queue).

You'd need to learn how to write a task class but you don't have to learn how to implement a complete eZ Publish script or cronjob.

Mugo Queue supports multiple threads to process tasks from the queue.

Because of the 2 step process, you can collect tasks during the day and execute the tasks at night (or at other low traffic times).

The Mugo Queue framework enables you to execute tasks not only from the command line context but also in the context of a normal Apache request.

Contact

604-637-6396
hiATmugo.ca

#414-207 W. Hastings St
Vancouver, BC
Canada


RSS icon Twitter icon

We have been using this team for editing, consulting, support and training services in North America for the last 3 years and we still do. The team has shown their expert knowledge of our systems, and is responsive and dedicated. The services they provide include expert consulting on eZ Publish towards large, high-traffic enterprise customers.

CEO Aleksander Farstad , eZ Systems

I relied on Mugo for the development of two complex web applications, and I was extremely impressed with their accurate estimates, consistent and timely delivery of production code, and commitment. They have the rare blend of business knowledge and deep technical expertise, and they excel at listening to business requirements and translating those requirements into intelligent and reliable software products. They are able to work on all aspects of software solutions -- front end/UI, core code, modules and extensions, application integration, and infrastructure -- and they are extremely capable in all of those areas. I highly recommend Mugo to anyone in need of a competent and dependable technology partner.

Co-Founder Graham Tillotson, Tandem, Chicago

Mugo maintains and develops new features for the Rasmussen Reports website, www.rasmussenreports.com. We are impressed with how efficiently they deliver high quality solutions that exactly fit our needs. The Mugo team understands the complexity of our high traffic website and was able to improve our site's overall performance, as well as its search engine rating. For our site's subscribers, Mugo quickly and efficiently developed many new features for our Premium Section.

The Mugo team is great to work with, and I look forward to a long and productive relationship.

Stephen W Smith, Interim CEO, Rasmussen Reports

If you ask me what is the first thing you think of about the Mugo team, I would say that they listen.

For a customer, the worst thing is to work with a partner that doesn't listen to you. That doesn't understand your points. That simply doesn't listen and try to help you.

Daniel Iribarren, ClearCap

Mugo Web is not another service provider. They are your partners.
One of the things I really like about the Mugo team is that they care about my project and myself. That is why I call them my partners.

Daniel Iribarren, ClearCap

Mugo Web is not just a group of geeks. They are a team of highly knowledgeable technology and business people.
They understand that they are helping you to design solutions to satisfy or solve business problems. And not every developer is able to deliver that. I have worked with more than 10 different let's says production centers and what they delivered to me was geek stuff. Not business solutions.
Mugo Web will help you to use geek stuff to solve business problems.

Daniel Iribarren, ClearCap

It's been a pleasure working with Mugo Web. They are fast, efficient and always helpful. They respond positively to questions and offer great solutions to technical problems.

Susan Wright, Director of Operations, Toronto Arts Council and Foundation

We've been extremely pleased with the work Mugo has done for us. They have been responsive and understanding in dealing with the complexities of our needs.

Wendy Prugh, Program Manager, The Christian Science Monitor

The team members we work with at Mugo have demonstrated a high caliber of competency in the work they do, and it instills great confidence in us to know that we have such quality professionals in our corner. Their consistent delivery has helped us develop a fluid system for enacting change and improvements on our website. We certainly look forward to continuing this relationship!

Wendy Prugh, Program Manager, The Christian Science Monitor

Thank you very much Mugo Web for the website work you've done for our company. You valued & respected our time. You produced quality work. You paid attention to detail and understood the JPLradio concept. Most importantly, we appreciate the good business ethic of our contact person your company provided. For that, I/we thank you.

Troy B. Williams, Founder & Program Director, Just Positive Lyrics Radio

We thoroughly enjoy our working relationship with Mugo Web. They are customer-focused, take the time to listen, give good solid advice with our best interests in mind, and have a quick turnaround time. We've had a number of compliments on the new website, which looks goods, functions well, and performs solidly.

Paul O'Sullivan, IT Specialist, New Society Publishers

From our first contact, the team at Mugo has shown an unprecedented level of commitment to our web projects... ending almost 4 years of struggling! In the three months Mugo worked on our new version -- which had stalled with our previous developers -- we have made more progress than ever before. They are fast, precise and thorough, and definitely stand out in the industry!

Sébastien Michel, Director, Frogs-in-NZ

eZ debug

Clear cache:

Quick settings:

Timing: May 17 2012 13:25:18
Module start 'content'
Warning: May 17 2012 13:25:18
Path 'extension/mugo_binary_cdn/autoloads/' does not have the file 'eztemplateautoload.php' allthough it reported it had one.
Looked for file 'extension/mugo_binary_cdn/autoloads/eztemplateautoload.php'
Check the setting [TemplateSettings]/ExtensionAutoloadPath or AutoloadPathList in your site.ini settings.
Timing: May 17 2012 13:25:18
Module end 'content'
Timing: May 17 2012 13:25:18
End

Timing points:

CheckpointElapsedRel. ElapsedMemoryRel. Memory
Module start 'content' 0.0000 sec0.2466 sec 7,894.9219 KB15,509.4844 KB
Module end 'content' 0.2466 sec0.2648 sec 23,404.4063 KB8,325.4141 KB
End 0.5115 sec  31,729.8203 KB 
Total runtime:0.5464 sec
Peak memory usage:33,018.4141 KB

Time accumulators:

 Accumulator Elapsed Percent Count Average
ini_load
Load cache0.0208 sec3.5268%290.0007 sec
Check MTime0.0011 sec0.1849%290.0000 sec
Mysql Total
Mysqli_queries0.0773 sec13.0901%1930.0004 sec
Looping result0.0042 sec0.7109%1910.0000 sec
TS translator
TS init0.0040 sec0.6779%60.0007 sec
TS cache load0.0031 sec0.5309%60.0005 sec
TS context load0.0025 sec0.4305%60.0004 sec
Template Total0.5064 sec 85.7% 3 0.1688 sec
Template load0.0757 sec12.8129%30.0252 sec
String conversion in template resource0.0007 sec0.1164%270.0000 sec
Template parser: create text elements0.0231 sec3.9036%270.0009 sec
Template parser: remove whitespace0.0057 sec0.9572%270.0002 sec
Template parser: construct tree0.1030 sec17.4358%270.0038 sec
Template load and register function0.0086 sec1.4642%90.0010 sec
Template processing0.4306 sec72.9102%30.1435 sec
states
state_id_array0.0046 sec0.7830%140.0003 sec
state_identifier_array0.0054 sec0.9132%150.0004 sec
override
Cache load0.0039 sec0.6606%870.0000 sec
Sytem overhead
Fetch class attribute can translate value0.0042 sec0.7054%20.0021 sec
Fetch class attribute name0.0078 sec1.3287%400.0002 sec
XML
Image XML parsing0.0029 sec0.4928%20.0015 sec
class_abstraction
Instantiating content class attribute0.0004 sec0.0637%400.0000 sec
General
dbfile0.0005 sec0.0883%200.0000 sec
String conversion0.0002 sec0.0359%290.0000 sec
String conversion w/ mbstring0.0000 sec0.0055%10.0000 sec
Total script time:0.5905 sec

CSS/JS files loaded with "ezjscPacker" during request:

CacheTypePacklevelSourceFiles
b19e38da28f4801665f8b77477b57ff1.jsJS2extension/ezjscore/design/standard/javascript/jquery-1.5.2.min.js
ezjscServerFunctionsJs::jqueryio

Templates used to render the page:

UsageRequested templateTemplateTemplate loadedEditOverride
1node/view/full.tplfull/mugoproduct.tplextension/mugoca/design/mugoca/override/templates/full/mugoproduct.tplEdit templateOverride template
1content/datatype/view/ezimage.tplattribute/lightbox.tplextension/mugo/design/standard/override/templates/attribute/lightbox.tplEdit templateOverride template
13content/datatype/view/ezstring.tpl<No override>design/standard/templates/content/datatype/view/ezstring.tplEdit templateOverride template
1content/datatype/view/ezbinaryfile.tpl<No override>extension/mugoca/design/mugoca/templates/content/datatype/view/ezbinaryfile.tplEdit templateOverride template
1content/datatype/view/ezxmltext.tpl<No override>design/standard/templates/content/datatype/view/ezxmltext.tplEdit templateOverride template
2content/datatype/view/ezxmltags/header.tpl<No override>design/standard/templates/content/datatype/view/ezxmltags/header.tplEdit templateOverride template
3content/datatype/view/ezxmltags/paragraph.tpl<No override>extension/mugoca/design/mugoca/templates/content/datatype/view/ezxmltags/paragraph.tplEdit templateOverride template
3content/datatype/view/ezxmltags/line.tpl<No override>design/standard/templates/content/datatype/view/ezxmltags/line.tplEdit templateOverride template
3content/datatype/view/ezxmltags/li.tpl<No override>design/standard/templates/content/datatype/view/ezxmltags/li.tplEdit templateOverride template
2content/datatype/view/ezxmltags/ol.tpl<No override>design/standard/templates/content/datatype/view/ezxmltags/ol.tplEdit templateOverride template
1pagelayout.tpl<No override>extension/mugoca/design/mugoca/templates/pagelayout.tplEdit templateOverride template
1page_head.tpl<No override>extension/mugoca/design/mugoca/templates/page_head.tplEdit templateOverride template
1link.tpl<No override>extension/mugoca/design/mugoca/templates/link.tplEdit templateOverride template
1menu/new_menu.tpl<No override>extension/mugoca/design/mugoca/templates/menu/new_menu.tplEdit templateOverride template
1parts/banner.tpl<No override>extension/mugoca/design/mugoca/templates/parts/banner.tplEdit templateOverride template
1content/view/billboard.tplbillboard/banner.tplextension/mugoca/design/mugoca/override/templates/billboard/banner.tplEdit templateOverride template
1menu/flat_left.tpl<No override>extension/mugoca/design/mugoca/templates/menu/flat_left.tplEdit templateOverride template
1parts/extra_info.tpl<No override>extension/mugoca/design/mugoca/templates/parts/extra_info.tplEdit templateOverride template
12node/view/embed.tplembed/customer_quote.tplextension/mugoca/design/mugoca/override/templates/embed/customer_quote.tplEdit templateOverride template
12content/datatype/view/eztext.tpl<No override>design/standard/templates/content/datatype/view/eztext.tplEdit templateOverride template
12content/datatype/view/ezurl.tpl<No override>design/standard/templates/content/datatype/view/ezurl.tplEdit templateOverride template
1dynamic/controller.tpl<No override>extension/mugoca/design/mugoca/templates/dynamic/controller.tplEdit templateOverride template
1dynamic/widgets/twitter_ajax.tpl<No override>extension/mugoca/design/mugoca/templates/dynamic/widgets/twitter_ajax.tplEdit templateOverride template
1page_footer.tpl<No override>extension/mugoca/design/mugoca/templates/page_footer.tplEdit templateOverride template
1setup/debug_toolbar.tpl<No override>design/standard/templates/setup/debug_toolbar.tplEdit templateOverride template
1setup/clear_cache.tpl<No override>design/standard/templates/setup/clear_cache.tplEdit templateOverride template
1setup/quick_settings.tpl<No override>design/standard/templates/setup/quick_settings.tplEdit templateOverride template
 Number of times templates used: 80
 Number of unique templates used: 27
 Time used to render template usage: 0.0004 secs