@caplaz
Is that the correct method?
Yes, this will work.
Can I write to the csv file?
Yes, there is action called Write File(which also has append switch).
Can also use csv_generate api for proper escaping.
Action "Custom" and
[[CSV_LINE]] = csv_generate(["a","b","c"],",")
Or should that be done in a seperate file?
Better use database, not csv
I want my threads to loop forever but no matter what I do they eventually end. Sometimes with success and sometimes with error.
If you have any failure during thread run, for eaxmple failed to load with proxy error, the thread will end. And as long as you set "use each line one time" to resource, it won't be used again.
Ending with success is strange, probably, because you are using labels inside loops, 20 version has good explanation about this:
There are two types of goto: long and short. Short move is performed if goto and label are located inside same block (has one parent). This type of move preserves execution history and script continues afterward. In other cases long move is performed, which clears execution history. Long move case is perfect if you are jumping on script start, but if you move inside loop, you must use another move to leave it, otherwise thread will stop with success message.
Anyway, if you have some code, that may return error, just wrap it inside ignore errors action.
You can also wrap whole list of actions that you want to do with account inside ignore errors block.
Like this
0_1500075786806_listfromfile-loop.xml