gpt4 book ai didi

Python Wand 生成大量临时文件

转载 作者:太空狗 更新时间:2023-10-29 20:30:39 27 4
gpt4 key购买 nike

我们使用Celery下的Python Wand来处理很多图片。在我们的一些服务器上,我们的处理有时会留下很多临时文件,例如:

$ ls -lh/tmp/
-rw------- 1 ubuntu ubuntu 1.9M 4 月 1 日 04:35 magick-y1yKKiVZ
-rw-------- 1 ubuntu ubuntu 1.9M Apr 1 04:41 magick-Y22P6McK
-rw------- 1 ubuntu ubuntu 1.9M Apr 1 04:37 magick-YaaSIYrk
-rw------- 1 ubuntu ubuntu 1.9M Apr 1 04:39 magick-YEkn4H15
-rw------ 1 ubuntu ubuntu 1.9M 4 月 1 日 04:39 magick-yf2Vrfwi
-rw------- 1 ubuntu ubuntu 1.9M Apr 1 04:38 magick-YIYTaArn
-rw------ 1 ubuntu ubuntu 199K Apr 1 04:43 magick-YLM5wYm9
-rw------- 1 ubuntu ubuntu 199K Apr 1 04:43 magick-YLo5SeVp
[...]

有没有办法让 Wand 在处理某些文件后进行清理?如果这是预期的行为,是否有办法调试它并知道哪个图像创建了哪个临时文件,例如通过放置日志语句?

谢谢

最佳答案

简单的方法:在您的环境设置中,指向 MAGICK_TMPDIR=/home/somewhererm magick-* 您的 crontab 中的文件夹。

硬方法:在编译之前将此路径应用到 ImageMagick:

--- pristine/imagemagick-6.5.7.8/magick/resource.c 2009-10-26 16:52:10.000000000 +0300
+++ libm/imagemagick-6.5.7.8/magick/resource.c 2010-09-28 19:18:39.000000000 +0400
@@ -329,6 +329,7 @@
static void *DestroyTemporaryResources(void *temporary_resource)
{
(void) remove((char *) temporary_resource);
+ RelinquishMagickMemory(temporary_resource);
return((void *) NULL);
}

@@ -474,10 +475,10 @@
(void) LockSemaphoreInfo(resource_semaphore);
if (temporary_resources == (SplayTreeInfo *) NULL)
temporary_resources=NewSplayTree(CompareSplayTreeString,
- RelinquishMagickMemory,DestroyTemporaryResources);
+ DestroyTemporaryResources, NULL);
(void) UnlockSemaphoreInfo(resource_semaphore);
resource=ConstantString(path);
- (void) AddValueToSplayTree(temporary_resources,resource,resource);
+ (void) AddValueToSplayTree(temporary_resources,resource,NULL);
return(file);
}

关于Python Wand 生成大量临时文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22777012/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com