What I did is carefully analyze "unit of work" in my system, and number my execution steps.

When you start your script always pass "step' as one of the parameter (or some other way, to pass the step number to the script, for example storing in a database table etc). the script just start itself from the given step.

At the beginning the step numbers might be whole bunch of zeros. When your script is running, it has to update the step numbers periodically, when a "unit of work" is completed sucessfully.

"Step number" is not neccessary to be one number, actually it can be a set of number (for me usually two or three numbers), so you can have sub-steps within a step. This is simple and very useful, most of my programs are restartable.

The most important thing here is to identify your "unit of work".


In reply to Re: Crash immunity by pg
in thread Crash immunity by Anonymous Monk

Title:
Use:  <p> text here (a paragraph) </p>
and:  <code> code here </code>
to format your post, it's "PerlMonks-approved HTML":



  • Posts are HTML formatted. Put <p> </p> tags around your paragraphs. Put <code> </code> tags around your code and data!
  • Titles consisting of a single word are discouraged, and in most cases are disallowed outright.
  • Read Where should I post X? if you're not absolutely sure you're posting in the right place.
  • Please read these before you post! —
  • Posts may use any of the Perl Monks Approved HTML tags:
    a, abbr, b, big, blockquote, br, caption, center, col, colgroup, dd, del, details, div, dl, dt, em, font, h1, h2, h3, h4, h5, h6, hr, i, ins, li, ol, p, pre, readmore, small, span, spoiler, strike, strong, sub, summary, sup, table, tbody, td, tfoot, th, thead, tr, tt, u, ul, wbr
  • You may need to use entities for some characters, as follows. (Exception: Within code tags, you can put the characters literally.)
            For:     Use:
    & &amp;
    < &lt;
    > &gt;
    [ &#91;
    ] &#93;
  • Link using PerlMonks shortcuts! What shortcuts can I use for linking?
  • See Writeup Formatting Tips and other pages linked from there for more info.