This page explains how ArgusCache works in detail and what functionality ArgusCache contains.
ArgusCache is a tool which should allow you to speed up the execution of your external assets on your live systems. Especially understanding what happens on your system is very interesting, since mostly that information is key to tuning a system. With ArgusCache provides you with the following functionality:
ArgusCache is a server module which hooks directly into Lucee and monitors the following six external resources:
The invocation of the Lucee caching system is happening by activating the default caching in the Application.cfc like follows:
//this.cachedwithin["function"] = "smart"; this.cachedwithin["http"] = "smart"; this.cachedwithin["query"] = "smart"; this.cachedwithin["include"] = "smart"; this.cachedwithin["file"] = "smart"; this.cachedwithin["invoke"] = "smart";
The above settings are implemented with the Lucee notation, which allows you to define default attributes for tags in Lucee. This also means, that ArgusCache will NOT introspect already cached resources. From the above statements in the Application.cfc the function caching is uncommented, since at the moment it can have quite a big impact on performance when analyzing functions in the current state of the beta. Sometimes in an objectoriented approach, there are thousands of function calls in one single request. Therefore you should approach it with care. After you have installed ArgusCache, you also need to activate the introspection by setting the above defaults for caching.
ArgusCache consists of two parts:
When you have turned on the default caching in the Application.cfc as described above, all uncached elements will be analyzed and eventually marked as entries. An entry is a result of such an external call which potentially is worth caching since it has not changed for at least 1 minute (or whatever you have set in your ArgusCache settings) when called with the same params. For every entry params a hash is calculated and an entry is generated. Then the call is been done and the result is analyzed and a hash is generated for the result.
If now the entry and result hash do not change for subsequent calls larger than one minute (or defined), the potential entry is now turning into a real entry which potentially could be cached. The entry params differ from type to type (6 types see above).
Once you have identified all the entries or the potential entries, you can easily cache them by navigating into the details of the analyzed entries and select which ones you want to cache and which ones not. You can also decide to ignore the analysis for certain patterns. This is necessary for keeping the performance of the server high.
The decision on whether to cache an element or not is completely up to you. There is no automatic caching yet implemented in ArgusCache