Ich möchte das mysql-proxy lua
Skript, um Interleaving Zugriffe auf eine Website (z. B. zwei verschiedene Browser-Fenster/Benutzer) zu behandeln, aber in der Lage, eine der beiden zu pausieren/zu verzögern, ohne die anderen zu beeinflussen.Handling Sessions Interleavingly ist möglich in mysql-proyx lua
(so scheint es in Bezug auf die später aufgeführten Ausgabe), aber sobald ich beginne zu verzögern das Skript blockiert es alles und die andere Sitzung kann auch nicht weiter.pause eine einzelne Sitzung, aber weiterverarbeitung
-- the query which indicates the session/connection that shall be delayed at that execution
local qoi = "SELECT loginattempts,uid FROM mybb_users WHERE username='user1' LIMIT 1"
function read_query(packet)
if string.byte(packet) == proxy.COM_QUERY then
query = packet:sub(2)
start_time = os.time()
if query == qoi then
print("busy wait")
while os.time() < start_time + 20 do
--nothing
end
print("busy wait end")
end
print("Connection id: " .. proxy.connection.server.thread_id)
end
end
Allerdings endet dieses Skript mit Ausgang auf:
Connection id: 36
busy wait
busy wait end
Connection id: 36
Connection id: 36
Connection id: 36
Connection id: 37
Connection id: 37
Connection id: 36
Connection id: 36
Connection id: 36
Connection id: 37
und nicht die erwarteten
Connection id: 36
busy wait
connection id: 37
connection id: 37
busy wait end
Connection id: 36
ist meine Absicht, noch erreichbar, und wenn ja, wie?
@ i486 Ich würde einen längeren Kommentar/eine Antwort schätzen. Wenn mein Denken ernsthaft fehlerhaft ist und meine Absicht nicht erreichbar ist, wäre eine Antwort, die genau dies erklärt, genauso gut wie alles andere. Es gibt nichts da draußen, das diesen (potentiellen) Anwendungsfall abdeckt, und eine definitive Antwort würde die nächste arme Seele retten, die versucht, dies irgendwann zu erreichen. – Sim
Ihr Programm nicht schlafen, es ist wirklich sehr beschäftigt, das leere während Schleife laufen, – Piglet
@Piglet Ich bin mir dessen bewusst, obwohl gegeben, dass Lua keinen Schlaf ein "beschäftigt warten" ist alles, was ich soweit ich weiß. Die allgemeine Absicht besteht darin, diese Sitzung/Ausführung ausreichend zu verzögern, um andere parallele Ausführungen verschachteln zu lassen. Ich habe den beleidigenden Abschnitt meiner Frage bearbeitet. – Sim