New bug. The browser window doesn't draw properly. Much of it stays blank until you mouse over things that change (buttons highlight, etc) but objects that don't change on mouse over do not draw.
New bug. The browser window doesn't draw properly. Much of it stays blank until you mouse over things that change (buttons highlight, etc) but objects that don't change on mouse over do not draw.
Last edited by Darxide23; 02-18-2014 at 09:38 PM.
Oh that's not new and not really a bug. I'm not forcing redraws in order to save on CPU cycles. So sometimes the window will not get repainted until an action is triggered in APBU. It doesn't happen that often and it's just cosmetic. When it happens is usually during the wait till start of new cycle and usually when you got the window covered by another window. If I force redraws just for this, you'll be looking at 2-3% CPU usage increase. Not worth it, is it? In fact I have on my todo list an option in the settings to not load images at all in the browser as that will save both CPU cycles and RAM.
My concept is that when you got something running 24/7, it should take as less resources as possible. And spending resources for eyecandy is kinda silly as most of the time it will just do its work running minimized in the background heh.
Here's the log up to the timeout where it stops:
Again, I have full resources for everything queued. I also have the max timeouts set to 2, but this looks like it only times out once before it says max timeouts reached. I've also got it set to move to next task on time out.21:25:39: Swiching to character ****
21:25:48: Checking slot 1.
21:25:52: Slot 1 is Free. Starting new task.
21:26:11: Adding task timed out. Retrying!
21:26:26: Timeout. Retrying.
21:26:27: Max timeout reached. Stopping.
21:26:27: Stopping. Please Wait!
21:26:27: Stopped! Timeout while starting new task after Free
Edit: Upon further inspection, slot 1 is NOT free and has a 12 hour task in it that I had started manually before I even started the bot. That is not the least common denominator, though. It has timed out and stopped when all task slots were controlled by the bot (no manual tasks).
Perhaps something related to switching characters? Maybe the bot is inspecting slot 1 before the page fully loads and it thinks it's empty? I don't know. Just tossing out ideas.
Edit edit: Something else, the timeout doesn't always happen right away. Sometimes it will happen in the first loop, sometimes the bot will run for hours before it happens.
Last edited by Darxide23; 02-18-2014 at 09:47 PM.
Your assumption is correct. The problem is with the switching. to character. See it took 9 seconds before Checking Slot 1. This means gateway timed out on you. I just saw in my code that I'm not handling that part correctly as the bot will continue to check slot 1 if that part times out. I will fix that so it retries switching to character and if it fails it will either stop or relog if relog is enabled. Relog will keep it running for sure unless the gateway itself is down for a bit (like when it gets the red message that is under maintenance).
0.3.1b:
--Fixed a memory leak in the web browser engine. (Do not keep any dll from older versions).
--Timeouts while switching characters now handled properly.
Oh, BaseN, just to let you know, I'm still working on the profession xml files. Are you familiar with XSLT by any chance?
Barely. I know what it is but I've never used it as I never had any need for it. It's mostly for web developers, not my cup of tea heh.
BaseN,
How are you planning on doing the xmls for assets? I know you were talking about having to put them in the xml files, but also creating a recipe xml. Trying to get some info to do some of the work for you.![]()
Well first I need two xml data files. One for Tools and one for Craftsmen. In this format:
craftsmen.xml:
tools.xmlCode:<?xml version="1.0" encoding="utf-8"?> <root> <craftsman> <name>Hero</name> <bonus>50%</bonus> <profession>Leadership</profession> <internal>Have_Not_Checked_This_Yet</internal> </craftsman> </root>
Then once those two are ready. I need the profession xml files updated with 2 new attributes for each task but hold on on that.Code:<root> <tool> <name>Mithral Awl</name> <bonus>40%</bonus> <professions>Leatherworking Tailoring</professions> <internal>Have_Not_Checked_This_Yet</internal> </tool> </root>
Basically Darxide23, if you're working on a file currently, when you finish it send it to me and don't start another, so I can add some fields programmatically to all the files, so asset work can happen simultaneously.
Alright.
I've also just gotten to another timeout stop with the new version:
Queue looks like this: VVCap Image23:37:21: Switching to character ****
23:37:24: Checking slot 1.
23:37:25: Slot 1 is Running.
23:37:25: Checking slot 2.
23:37:26: Slot 2 is Running.
23:37:26: Checking slot 3.
23:37:27: Slot 3 is Running.
23:37:27: Checking slot 4.
23:37:28: Slot 4 is Finished. Collecting Reward.
23:37:33: Checking if slot 3 is now Free.
23:37:39: Slot 3 is Free.
23:37:43: Starting new task on slot 4.
23:38:01: Timeout. Retrying.
23:38:21: Timeout. Retrying.
23:38:22: Max timeout reached. Stopped.
23:38:22: Stopping. Please Wait!
23:38:22: Stopped! Timeout while starting new task after Finished
currently slot 4 is empty so collection went as planned. If you look at the queue, it should have timed out on the Defender's Plate Armor +4 since I don't have any Plate Armor +2 in my inventory, but I do have materials to make Plate Armor +2 so it should have moved onto that task. I double checked and I am able to manually start Plate Armor +2 right now.
Oh. I just noticed that after it collected from Slot 4 it went backward checked Slot 3 and claimed it was free. It is not free. Slot 1-3 have 12 hour tasks in them I did manually and won't be ready for another 5 hours. Looks like some logic is off there in the code.
Last edited by Darxide23; 02-19-2014 at 12:03 AM.
Ok that slot 3 in the log is me neglecting to do a +1 on the log message. 3 is actually 4 so that's fine (in code numbers start from 0 so slot 3 is actually the 4th). Nothing is wrong there. It seems you are timing out on loading the page with the start button. 2 Timeout value is too aggressive. Until I separate the global timeout from the iteration retry timeout loops do not set it below 5 (5 will not delay the FP slots because they auto check only 2 times at the right point).
0.3.2b:
--Reduced memory footprint.
--Fixed a slot misreporting in 3 log messages.
Do you think we should have an option to continually attempt to log back in after stopping from a time out?
I'm also fairly positive I've pinned down the Gateway timeouts from my end. My internet connection is in and out right now because of the nasty weather. At least that explains that.
Just tossing this idea out there. Any chance you can set the recheck interval off the smallest time remaining for the running tasks and then wait on that interval (perhaps only if it's longer than the predefined loop timer)? I'm just thinking that if your running 6 and 12 hour leadership tasks, it might look funny that your logging in every 2-3 mins to check.
Well that's what the Relog after timeout option currently does.
This is theoretically possible but there are many possible complications with this including increased CPU usage due to constant syncing of a timer (if I don't constantly sync a timer then you risk missing a finished task by a few seconds and wait for like 5 hours and 57 seconds after it's over to start the next). Also currently that option is coupled to the relog after timeout function as well. Meaning that if you set it to 6 hours, if you timeout APBU will wait 6 hours till attempt to relog. I need to decouple several timing settings by adding additional options to settings and/or setting some to fixed values. Once I do that, you can probably set that to something like 20 minutes if you're only running 6hour+ tasks.
Last edited by BaseN; 02-19-2014 at 11:29 AM. Reason: Typos