Drupal is a registered trademark of Dries Buytaert
Protected Pages 3.0.0 Major update available for module protected_pages (3.0.0). Commerce Core 3.3.8 Minor update available for module commerce (3.3.8). Layout Builder Reorder 2.0.1 Minor update available for module layout_builder_reorder (2.0.1). Ban 1.1.0 Minor update available for module ban (1.1.0). Field Formatter Range 2.0.0 Major update available for module field_formatter_range (2.0.0). Field Formatter Range 8.x-1.8 Minor update available for module field_formatter_range (8.x-1.8). UI Patterns (SDC in Drupal UI) 2.0.18 Minor update available for module ui_patterns (2.0.18). Varbase FAQs 9.2.1 Minor update available for module varbase_faqs (9.2.1). Search API Solr 4.3.11 Module search_api_solr updated after 14 months of inactivity (4.3.11). Provus Mega Menu Module provus_mega_menu crossed 1,000 active installs.

URLs queuer

256 sites Security covered
View on drupal.org

This module automatically queues URLs for cache invalidation when your caching system doesn't support tag-based invalidation. It learns which URLs to queue by tracking cache misses in Drupal and then uses cache tags to find and add those URLs to the Purge queue.

This module queues URLs or paths to your Purge queue.

Drupal 8 introduces tag-based cache invalidation which is much more efficient than legacy URL or path based invalidation and leads to less processing and smaller queues. However, when your CDN or external caching system does not support tag-based invalidation, this module is for you!

How it works

The module trains its traffic registry by collecting URLs from requests that miss cache inside Drupal's own page cache. These URLs are stored along with their associated cache tags inside this same traffic registry. Now when Drupal invalidates a set of tags because someone edited a page, these tags are used to fetch URLs from the registry and are added to the Purge queue.

Accuracy

Those that remember the cache expiration module for Drupal 7 are familiar with the side effects of some changes not being automatically detected. This module can guarantee very high accuracy since it simply leverages D8's highly innovative tags based caching architecture, which is thoroughly covered by tests that cover edge cases most site builders wouldn't think off. Examples of things that just work are pagers (/news/?page=10), RSS or Json views (/rss.xml) and any view or view block, like that one dynamic block placed on /contact that shows corporate press releases.

Very important warning!

This module isn't suited for everyone and can bring your site down if you're not careful!

Because it stores URLs for all of your traffic, sites with thousands of content items can end up creating a unsustainable large registry with database strain as ultimate consequence. If you're noticing that queries coming from this module are severely slowing down your website, the only alternatives you have are:

  1. Switch to a CDN that does support tag-based cache invalidation.
  2. Stay with the CDN, but:
  • Uninstall and stop using purge_queuer_url.
  • Configure the CDN to override your caching policy at the edge.
  • The override should set a reasonably short cache policy for all CDN-to-browser delivery.

Getting started

  • Setup the Purge module.
  • Make sure that your purger(s) support URL or path invalidations.
  • drush en purge_queuer_url --yes
  • drush cset system.performance cache.page.max_age 31536000 (year)
  • drush cache-rebuild to empty Drupal's page cache.

To achieve accurate URL based cache invalidation, it is best to take a head start by training the traffic registry that purge_queuer_url maintains:

wget -r -nd --delete-after -l100 --spider http://mydrupalsite/

When this process finished, editing any item on your site should result in several URLs being added to the Purge queue (see drush p-queue-browse). Ordinary website traffic will automatically add new URLs to your traffic registry and won't require any further maintenance.

Activity

Total releases
2
First release
Feb 2025
Latest release
1 year ago
Releases (12 mo)
0 ▼ from 2
Maintenance
Dormant

Releases

Version Type Release date
8.x-1.2 Stable Apr 1, 2025
8.x-1.1 Stable Feb 7, 2025