2024.09.27
-
工作内容
Shader 编译相关
-
上午
看了一下项目实现,应该是 java + spring 开发
本机装了一个java环境,javac用来编译 .java -> .class,java用来运行编译好的文件
装了个 IntelliJ IDEA,发现 gradle 和 java 版本不匹配,重装了 jdk-17 之后,用 IDEA 打开它成功完成了依赖同步
-
下午
初看 Agent 项目
调试看代码,先看的 Agent 项目,只有个 ShaderCompileTester 可以调试运行,正经八百的主入口,只有个 类塞到Spring里面,啥也没有,怀疑是Spring内部有一套循环逻辑,进去细看之后,调试终止在了 listener startup,listen了主入口类。项目里还有一些散落的task。
初看 distributed-compilation 项目
Agent 项目没看到 redis 相关的信息,开始转另一个项目看。
了解 package、import的一些spring包作用、以及类型注解。
发现了很多@RequestMapping 方法,那这个项目应该是通过外部发送网络请求触发逻辑的。
经过了一些尝试,终于成功地和这个程序完成了交互,返回了设定的代码:
二看 Agent 项目
交互成功了之后,日常怎么触发呢,日常要怎么触发。。。。Agent。。!?
看AgentApplication发现有个 @EnableScheduling 注解,嗷,定时触发!
摸索到了一个方法
1
2@Scheduled(cron = "*/2 * * * * ?")
public void FetchTask() {...}也就是说,这里会每2s上传云端编译数据,且从云端拉取待编译二进制
拉取待编译文件,TaskWorker会执行编译,将编译数据返回Manager,等待上传。
-
晚上
重新梳理了一下逻辑,整理流程图如下:
疑问:
-
Agent.TaskManager 是否实例化运行,没有发现对应的controller
- Spring Boot 自动注入
-
是否可以用SDC中的ClearCache请求执行清理任务
- 本地正常
- 云服务器待支持
-
fetch 的task来自于compile,compile怎么驱动
- unity shader compiler请求
-
Knowledge
-
java