I’m trying to figure out how to manually rebuild / republish certain pages of a blog on a periodic basis.
The publish queue and the schwartz are the way to go. I can’t help but start to reverse engineer what I can get my hands on, so I inspected the mttsjob table and found some interesting fields: tsjobcoalesce it contains entries like: “180:30963:1:1245969500” which I believe correspond to: blog_id:?:priority:timestamp
tsjobfuncid corresponds to the perl module to run, in my case it would be: MT::Worker::Publish
tsjobuniqkey corresponds to fileinfo_id, at least for publishing pages. It may refer to something different for other job function ids.
Majordojo’s Publish Queue Manager is a helpful plugin to understand the publish queue a little better, but it doesn’t offer much functionality, like adding new jobs.
UPDATE 2: A sample SQL query to try and manually add jobs to the queue:
INSERT INTOmt_ts_job(ts_job_jobid,ts_job_arg,ts_job_coalesce,ts_job_funcid,ts_job_grabbed_until,ts_job_insert_time,ts_job_priority,ts_job_run_after,ts_job_uniqkey) VALUES (1013968, NULL, ‘256:7307:1:1250485440’, 1, 0, 1250485443, 1, 1250485443, ‘22774’);

The second item in the coalesce field is just the process id, so I don't think its ultra important.