<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>BarneyBlog &#187; cfml</title>
	<atom:link href="http://www.barneyb.com/barneyblog/tag/cfml/feed/" rel="self" type="application/rss+xml" />
	<link>https://www.barneyb.com/barneyblog</link>
	<description>Thoughts, rants, and even some code from the mind of Barney Boisvert.</description>
	<lastBuildDate>Mon, 02 Mar 2020 13:20:35 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.9.2</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>Cron for CFML.  Again</title>
		<link>https://www.barneyb.com/barneyblog/2010/08/16/cron-for-cfml-again/</link>
		<comments>https://www.barneyb.com/barneyblog/2010/08/16/cron-for-cfml-again/#comments</comments>
		<pubDate>Tue, 17 Aug 2010 06:27:49 +0000</pubDate>
		<dc:creator>barneyb</dc:creator>
				<category><![CDATA[random]]></category>
		<category><![CDATA[cfml]]></category>

		<guid isPermaLink="false">http://www.barneyb.com/barneyblog/2010/08/16/cron-for-cfml-again/</guid>
		<description><![CDATA[So tonight I built cron in CFML.  Again. Because it's missing from both the language framework and every runtime.  Am I the only one who constantly fights this battle?  In the past four years I've built four distinct cron implementations in CFML and it's completely retarded.
The JRE provides TimerTask, but it's a [...]]]></description>
			<content:encoded><![CDATA[<p>So tonight I built cron in CFML.  Again. Because it's missing from both the language framework and every runtime.  Am I the only one who constantly fights this battle?  In the past four years I've built four distinct cron implementations in CFML and it's completely retarded.</p>
<p>The JRE provides TimerTask, but it's a huge pain in the ass to use with CFML because the Java-to-CFML bridges are laughably weak.  OpenSymphony has Quartz (which is awesome), but being Java, it suffers the same problem.  Yes, even with the bennies CFGroovy offers in the Java space.</p>
<p>CFSCHEDULE is lame, especially on ColdFusion with it's 61 second frequency limit.  Even with an optimal implementation the entire mechanism is flawed because it's a) stuck with equal iteration periods, and b) can only invoke URLs.  Every distinct task requires punching a hole in your URL security, making a UI-layer facade for the task, etc. </p>
<p>The Java mechinisms are much better because they stay in-JVM (i.e., don't go through HTTP), but the statelessness of CFCProxy is a huge burden.  You can't access already-instantiated CFCs, which means you end up writing a massive pile of custom facade/proxy code to interface with your already-running business model.</p>
<p>The natural solution, of course, is implementing cron in CFML.  It allows you to pay either the HTTP or CFCProxy cost exactly once, as well as have cron's incredibly flexible scheduling format.  This fact, in it's various manifestations, drives me to drink rather ridiculous amounts.</p>
<p>The flip side, of course, is the dynamic reloading nature that CFML servers offer.  I simply cannot understand why other JVM frameworks have not copied this feature.  The complete avoidance of all the JVM restarts and classloading hell is a benefit worth enormous sacrifice.  Which, I suppose, is why I write CFML both for my salary and for personal projects.</p>
<p>Am I the only one who thinks this is a problem?  With both CFML and other JVM frameworks.</p>
]]></content:encoded>
			<wfw:commentRss>https://www.barneyb.com/barneyblog/2010/08/16/cron-for-cfml-again/feed/</wfw:commentRss>
		<slash:comments>9</slash:comments>
		</item>
	</channel>
</rss>
