Updating Different Feeds at Specific Times of Day or Week


#1

I currently run update.php as a cron job every 15 minutes or so. For some of my feeds, this frequency is fine. For others, I’d like them to run only once a day or once a week. I know I can adjust the interval of a feed to “Daily” or “Weekly” in Preferences, but I’d like to control the exact time that each feed updates.

For instance, there are some feeds that I would like to update at 4:00 am on Monday mornings. How do I control this? If I set a feed to Weekly, how do I make the Weekly interval to be on Mondays at 4:00 am?

Please let me know. Thanks!


#2

In short, you can’t. If you set that feed to weekly, then you have to accept the fact that it might update at 3:00 a.m. Monday and then not again for another week.

For feeds that update weekly or every few days, I typically set those to update daily; or every few hours if I want to get the article(s) a little quicker.

You could code a plugin that would manipulate the updating or last refresh time in the database… it would work, but it would be a clunky workaround.


#3

Thank you for taking the time to respond. I greatly appreciate it and have a couple of follow-up questions:

It sounds like “weekly” means “one week from the last refresh time”. So if I set the last refresh time for the feed to this past Monday at 4:00 am, then it should not update again until this upcoming Monday at 4:00 am. Is that correct?

One other solution I’d like to investigate is creating different cron jobs for different feeds. Is it possible to run the update script on only certain feeds (instead of all of them)?

Please let me know. Thanks!


#4

Kinda, the time can drift. If for some reason an update gets delayed by a batch, it might update at 4:15, so then it will do it the next week at 4:15. At some point it might get delayed again and repeat a few times and it will be updating on wednesdays instead.


#5

Thanks.

I’m still curious about my second question. Is it possible to run the update script on only certain feeds (instead of all of them)?


#6

If you used to the feed debug option you could do this, but the output is noisy since, you know, it’s debugging. Run php update.php and it will give you a list of options.

For the record: It is my recommendation that you just accept the way TT-RSS works. You’ll probably find running it without all these hacks and modifications to be easier. In general, think of the update interval as “the longest period of time I’m willing to wait till I see an article,” and set it accordingly.

For something that’s updated weekly, I’d probably set the interval to 12-hours or daily. Personally, I update feeds that publish all the time (e.g. news) to 15 minutes and everything else to 4 hours (including sites that only update a few times a week).

It’s not going to put much of a load on either server to check once or twice a day and if the site in question returns a 304 Not Modified TT-RSS will honour that*.

*304’s get checked regardless once every 6 hours (I think) because some sites were found to be liars… Go figure.


#7

To provide some clarification, what I’m hoping to do is take a feed that normally updates frequently throughout the week and set it to update only once a week, thus giving me all of the articles from the previous week at once. This way, the feed functions as more of a weekly news magazine than a constantly updating stream. I don’t like reading a stream that constantly updates and would rather be given a single batch of articles to read all at once.

However, I don’t want to do this for all feeds. Some feeds I want to get a week’s worth of articles at once, while others I do want to update every hour or every day.


#8

protip: you can open ttrss once a week

oh


#9

trying to schedule or spread out feed updates is pointless and potentially harmful because you will miss articles that had entered and left feed XML in the (large) window between updates.

it also doesn’t help with your actual problem: it doesn’t matter when the information you want to read once a week enters the database, what matters is when you actually consume it.

what i would personally do in your case is sort everything into categories A and B. A for important stuff i want to be on top of, B for lazy reading on a rainy saturday. then i would negative-score category B so it won’t bother me by appearing in fresh articles etc, and open it when i feel like it.

i would also keep default update interval for everyhing because it ultimately doesn’t matter.


#10

I hate to be the “you’re doing it wrong” guy, but this mode (“I don’t want to see it as it’s published, I just want a batch update”) defeats the purpose of RSS. RSS is meant to be a subscription service. The point is to keep up-to-date on a website’s content. RSS doesn’t have a digest mode. The “digest mode” for a site is to visit the site directly periodically.

i.e.; When I subscribe to a weekly magazine, I get one issue delivered to me weekly. I don’t get 52 issues delivered once a year.


#11

You could also have 2 ttrss users if you really want to keep things separate and have the weekly feeds in second user and only login when you want to catch up.


#12

So clearly I need to rethink my approach to this problem. It’s given me a lot to mull over. Thanks, everybody, for all of your help and your quick responses. I appreciate it!