mirror of
https://github.com/meeb/tubesync.git
synced 2025-06-22 21:16:38 +00:00
Add nodename
to Task.locked_by
This commit is contained in:
parent
e5e29885f1
commit
c10b1aa255
@ -195,9 +195,14 @@ class Task(models.Model):
|
|||||||
Check if the locked_by process is still running.
|
Check if the locked_by process is still running.
|
||||||
"""
|
"""
|
||||||
if self.locked_by:
|
if self.locked_by:
|
||||||
|
pid, node = self.locked_by.split('/', 1)
|
||||||
|
# locked by a process on this node?
|
||||||
|
if os.uname().nodename[:(64-10)] != node:
|
||||||
|
return False
|
||||||
|
# is the process still running?
|
||||||
try:
|
try:
|
||||||
# won't kill the process. kill is a bad named system call
|
# Signal number zero won't kill the process.
|
||||||
os.kill(int(self.locked_by), 0)
|
os.kill(int(pid), 0)
|
||||||
return True
|
return True
|
||||||
except:
|
except:
|
||||||
return False
|
return False
|
||||||
@ -220,8 +225,9 @@ class Task(models.Model):
|
|||||||
|
|
||||||
def lock(self, locked_by):
|
def lock(self, locked_by):
|
||||||
now = timezone.now()
|
now = timezone.now()
|
||||||
|
owner = f'{locked_by[:8]}/{os.uname().nodename[:(64-10)}'
|
||||||
unlocked = Task.objects.unlocked(now).filter(pk=self.pk)
|
unlocked = Task.objects.unlocked(now).filter(pk=self.pk)
|
||||||
updated = unlocked.update(locked_by=locked_by, locked_at=now)
|
updated = unlocked.update(locked_by=owner, locked_at=now)
|
||||||
if updated:
|
if updated:
|
||||||
return Task.objects.get(pk=self.pk)
|
return Task.objects.get(pk=self.pk)
|
||||||
return None
|
return None
|
||||||
@ -423,9 +429,14 @@ class CompletedTask(models.Model):
|
|||||||
Check if the locked_by process is still running.
|
Check if the locked_by process is still running.
|
||||||
"""
|
"""
|
||||||
if self.locked_by:
|
if self.locked_by:
|
||||||
|
pid, node = self.locked_by.split('/', 1)
|
||||||
|
# locked by a process on this node?
|
||||||
|
if os.uname().nodename[:(64-10)] != node:
|
||||||
|
return False
|
||||||
|
# is the process still running?
|
||||||
try:
|
try:
|
||||||
# won't kill the process. kill is a bad named system call
|
# won't kill the process. kill is a bad named system call
|
||||||
os.kill(int(self.locked_by), 0)
|
os.kill(int(pid), 0)
|
||||||
return True
|
return True
|
||||||
except:
|
except:
|
||||||
return False
|
return False
|
||||||
|
Loading…
Reference in New Issue
Block a user