It might sound like I’m asking Automattic to take automation and scheduling to a new level within the WordPress core…but I’m not. I just want to blog a little about an idea, an important step in my work, that is not only in my head but one that I’ve already practiced.
I have invested many hours trying new approaches to smart automation that integrates with a scheduling system and I’m confident that any goal to achieve my wishes within the WP core would be massive. I created two different libraries that took care of automation and queuing. They including an IRC bot, use of multiple API and Web Hooks. Call it research with the goal of establishing the best approach to engineering a system that balances WordPress activity and avoids putting too much demand on a server at the wrong times i.e. peak traffic periods or the running of bulk administration tasks.
Smart then Smarter
After some prototyping, I’m ready to create what I need and it’s going to be smart. My smart library and my smart PHP classes are all in my head for now but I know what I need to do. My exciting library of new files will offer background processing when users initiate big tasks, a user-interface for scheduling any public PHP methods, algorithms to intelligently balance workloads, a self-learning class that uses past activities to predict future ones, and the ability for administrators to apply custom behaviors or dialog to common errors and more.
So what does all that mean? In short, it’s a huge concept that begins very smart and then gets smarter. It begins smart as a project and gets smarter as a project but what I really mean when I say “smarter” is that the library will depend on data unique to the environment (site, server, wp) for establishing a truly intelligent system.
My Drive for Automation
My first plugin was CSV 2 POST, it was great, then it was terrible. My first plugin worked well, it did a great job, the premium edition made more money than I had made working full-time in any job and then I killed it. I killed it by getting excited by possibilities that lay ahead and one of those possibilities was a level of automation I couldn’t fully comprehend within the WordPress environment. I was just out of University!
Years have passed since then and I have two plugins that could benefit greatly from my intended library of new tricks.
I created a plugin for Twitch.tv and it offers extension ability. The goal is to use my TwitchPress plugin and extensions to create a custom suite of live stream support tools. Any number of extensions could be installed. Any number of those extensions could use the same filters and actions. Any number of extensions might put demands on the server.
My smart automation library, would be added to the core TwitchPress plugin and offer many hooks so that extensions can fully integrate with the entire Twitch suite. This is the only way to ensure the system can intelligently balance requests, especially routine ones that are bulk.
WordPress Data Importer
This is a special project for me. It’s like the next level up from CSV 2 POST (my first plugin) and the idea I have in mind for it covers a niche service within the area of data import. I’m already catering for clients who cannot find a plugin like my own. It already has automation but like I already said, it’s just not good enough, despite being clever enough for an import plugin.
A good automation and scheduling library would allow this plugin to perform auto-blogging on a higher level. It would also contain better coding that will allow me to integrate it with debugging and error reporting classes.
Simple Compatibility and Complex Integration
I’m confident in my ability to create a strong library for any plugin and may host it on GitHub. The library will be easily compatible but the integration of this type of library would require changes throughout an existing plugin. It’s likely that most plugin authors would only use such a library at the beginning of their project.
To make life even easier for plugin authors. The first plugin I add my library to will be the WordPress Plugin Seed boilerplate.