Recently, more and more server tasks are done using full automation, including grading tasks for students in the college courses, integrating tasks for programmers in big projects and server-based transactions, and visualization tasks for researchers in a data-dense topic. Using automation on servers provides a great possibility for reducing the burden on manual tasks. Although server tools like CI/CD for continuous integration and Hexo for automated blog deployment have been developed, they're highly dedicated to certain functionalities and thus lack general usage. In this paper, we introduce a Golang-based automation framework that reacts to the events happening on GitHub in a multi-thread approach. This framework utilizes a queue to arrange the tasks submitted and execute each task with a thread in a preemptive manner. We then use the project GoAutoGrader to illustrate a specific implementation of this framework and its value in implementing high-freedom server applications. As Golang is developing in a rapid way because of its incredible parallel programming efficiency and a super-easy way to learn on the basis of C-like programming languages, we decide to develop this system in Golang.
翻译:最近,越来越多的服务器任务是通过完全自动化完成的,包括大学课程学生的分级任务,大型项目和服务器交易中程序员的任务的整合,以及数据敏感主题中研究人员的可视化任务。在服务器上使用自动化为减轻手工任务负担提供了巨大的可能性。虽然已经开发了用于连续整合的CI/CD服务器工具以及用于自动部署博客的Hexo服务器工具,但它们高度致力于某些功能,因此缺乏普遍用途。在本文中,我们引入了基于戈兰的自动化框架,以多线阅读方式对吉特胡卜事件作出反应。这个框架利用排队来安排提交的任务,并以先发制人的方式执行每项任务。我们随后使用GoAutoGrader项目来说明这一框架的具体执行情况及其在实施高自由服务器应用程序方面的价值。由于戈兰正在迅速发展,因为它有着令人难以置信的平行编程效率,并且是一种在像C类编程语言的基础上学习超级容易的方式,我们决定在戈兰开发这个系统。