Fijo / EVE-Composition-Planer

A tool that makes theorycrafting compositions for tournaments within EVE Online easier
GNU General Public License v2.0
0 stars 1 forks source link

cron job calculateItemFilterType doesnt do anything #14

Open IvandaNothabeer opened 8 years ago

IvandaNothabeer commented 8 years ago

All the Composition pages have a message that "the used ruleset hasn't been fully processed yet"

When I run the job in a debugger, the program reaches fittingRuleService line 149, but nothing is processed i.e. the code jumps straight to the end of the for loop.

when I var_dump($entityContext['entities']) I get a VERY large set of data - too many lines for the debugger to display - that seems to be the entire configuration of all the database tables, with a lot of RECURSION remarks in the data.

However, there does not seem to be any fitting rules in $entityContext

Any ideas ?

Fijo commented 8 years ago

I've just realized I'm dumb and I forgot to change a very significant thing in the import script I've given you. And when I tried to reproduce your issue I've automatically done it right too so the issue didnt even occur for me hehe.

there's 2 more tables for FittingRuleEntities hehe. They are supposed to be filled automatically by that script. However that only works if the flag is set to not processed yet which it wasn't in my script.

So now go forth and try to execute this SQL and it'll propobly fix your issue update fittingruleentity set isFilterTypeUptodate=0

Then wait until the php script ran again (It might take a few minutes to process everything) And if the issue doesn't go away after that please send me a at least (mildly obfuscated list if you wish to) of the result you get when executing this MySql query. SELECT name FROM fittingruleentity WHERE isFilterTypeUptodate=1

It'll tell me what rules haven't been processed yet and thus might be causing the issue.

IvandaNothabeer commented 7 years ago

isFilterTypeUptodate is set to zero on all fitting rules. It never gets set to 1 even when the CRON job runs.

Fijo commented 7 years ago

I'm not to sure it's working for me no issue. Even with bigger amounts of data, it just takes a while then...

You could try var_dump($this->getFittingRuleRowIds($entityContext['entities']))) instead for debugging. It should give you the fittingruleentity.id´s that are still pending for processing...

You could also try to only have a few fittingruleentity set to 0 to make sure the program doesn't crash due to too much data. I've tried to reprocess all fittingruleentity´s in my database though and the job held up just fine...

also I bet it didn't reach that line for you echo '... so this row has already been deleted between those two fetches ... interesting ... skiping it ...\n'; did it not?