Issue with Feed manager and Yahoo Pipes

This is the place to report bugs and get support. When posting in this forum, please always provide as much detail as possible.

Please do not report problems with a custom build or custom code in this forum. If you are producing your own build from the source code and have problems or questions, ask in the developer forum, do not report it as a bug.

This is the place to report bugs and get support

When posting in this forum, please try to provide as many relevant details as possible. Particularly the following:

  • What operating system were you running when the bug appeared?
  • What database platform is your site using?
  • What version of mojoPortal are you running?
  • What version of .NET do you use?
  • What steps are necessary to reproduce the issue? Compare expected results vs actual results.
Please do not report problems with a custom build or custom code in this forum. If you are producing your own build from the source code and have problems or questions, ask in the developer forum.
This thread is closed to new posts. You must sign in to post in the forums.
7/25/2013 3:32:41 PM
Gravatar
Total Posts 1203
Proud member of the mojoPortal team

Help support mojoPortal!
Add-on modules

Issue with Feed manager and Yahoo Pipes

Hi Joe, Yahoo Pipes turned on a cap for their service, so if more than 200 requests are received from the same IP address within an hour, it will start returning a 999 error for that pipe for the next hour.

For some reason, our instances of feed manager on the library site seem to be tripping this, although we have the cache time set to 15 minutes. I asked our library's webmaster to up the cache time to 60 minutes, remove our local RSS feed for the feed manager, and take down the feeds until Yahoo clears the 999 error for the pipe, so we can try again.

The problem I thought should perhaps be addressed or worked around is that in looking at the system log, it seems once an RSS error is returned to feed manager, it keeps attempting to load that RSS feed on every page load by every user. Of course, that means that this particular error will never go away, because between bots, etc., we're definitely getting more than 200 hits per hour on the home page of the site. 

Would it be difficult to change feed manager so that it respects the cache time, whether an error was returned or not? Maybe this should be done via a system key, since some people may want it to constantly poll if an error occurs.

 

7/26/2013 11:30:20 AM
Gravatar
Total Posts 18439

Re: Issue with Feed manager and Yahoo Pipes

Hi Jamie,

As far as I know that is how it works:

looks up most recent cache time

if (lastCacheTime > cacheExpiration)
{
    // data "cached" in the db has not expired so just return it
    return mojoPortal.Business.RssFeed.GetEntries(moduleGuid);
}

if we get this far then we delete all the cached items from the db

then we loop through each feed and insert the latest data into the db as the new cached copy

if an error happened for any single feed it should proceed with the others as long as it is an expected/handled error

I'm not sure if the yahoo pipe error is resulting in a handled error or not but it should not matter as long as there is some other feed that does get updated so that there is at least one row that is not expired then it should return the data from the db which is the cache

Is the reason you use yahoo pipes because of the 255 char limit on the feed url length? That is a long overdue easy fix, I can fix that soon.

Best,

Joe

7/26/2013 11:47:15 AM
Gravatar
Total Posts 1203
Proud member of the mojoPortal team

Help support mojoPortal!
Add-on modules

Re: Issue with Feed manager and Yahoo Pipes

Hi Joe, there is only one feed in the feed manager instance, so that's most likely the problem.

Actually, the only reason we're using Pipes is because the original order of the underlying RSS feed is getting scrambled by feed manager, since there's no pubDate included on it. I used Pipes to process the description field, and strip out the date to create a pubDate field in the reprocessed RSS.

If you can work out a way to have feed manager display the items in the same order as the original feed delivers them, we wouldn't need pipes at all (and that would be the best solution of all). Here's the URL of the RSS feed we're reprocessing, so you can play with it yourself and see if that's a possibility. It does pass the W3C validation, so I guess pubDate is an optional field.

http://host7.evanced.info/escondido/lib/eventsxml.asp?ag=&et=&lib=ALL&nd=30&dm=rss2&LangType=0

Thanks Joe!

Jamie

7/26/2013 11:59:35 AM
Gravatar
Total Posts 18439

Re: Issue with Feed manager and Yahoo Pipes

Hi Jamie,

With 1 feed it would be a problem because once we lookup and see that the feed is expired we have to delete it before we can go get it again, so if getting it then fails it will have to keep re-trying.

I don't have a way to affect the sort. I would expect it to be in feed order but then we are consuming the feed with Argotic and it might have some internal logic for sorting if the date is not there.

We put them in the database in the order that they are in when we loop with a foreach and if the date is missing we use the current timestamp.

Best,

Joe

7/26/2013 1:39:30 PM
Gravatar
Total Posts 1203
Proud member of the mojoPortal team

Help support mojoPortal!
Add-on modules

Re: Issue with Feed manager and Yahoo Pipes

Thanks Joe, I think that's where we left it last time. So the problem is that the feed manager assigns a pubDate to the entries with precision only to the second, so most (probably all) of the entries have the same pubDate.

If I do the code changes to implement, would you be okay with having a new recv_seq field on the mp_rssfeedentries table, along with the code to sort the output first by pubDate, then recv_seq? That seems like it would be an easier and safer change than trying to switch the date fields to TIMESTAMP(6) with fractional seconds, especially since support for storing fractional seconds was only added to MySQL recently (version 5.6.4).

If it's a go, it may be a little while until I can do this as I'm going on vacation for a couple of weeks after today.

Jamie

You must sign in to post in the forums. This thread is closed to new posts.